canOpenURL在ios 10中不工作
上面的代码总是返回falsecanOpenURL在ios 10中不工作,ios,swift,ios10,info.plist,openurl,Ios,Swift,Ios10,Info.plist,Openurl,上面的代码总是返回false if {(UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!))} 我想这是iOS10中发现的问题。 我试图打开谷歌地图应用程序,如果有一个安装或试图打开苹果地图,所以想使用canOpenURL。是否有其他选择编辑: 应用程序的plist文件中使用的正确键是lsapplicationqueryschemes,而不是苹果文档中所述的UIDefaultLaunchStoryboard 原始答复
if {(UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!))}
我想这是iOS10中发现的问题。
我试图打开谷歌地图应用程序,如果有一个安装或试图打开苹果地图,所以想使用canOpenURL。是否有其他选择编辑:
应用程序的plist文件中使用的正确键是lsapplicationqueryschemes
,而不是苹果文档中所述的UIDefaultLaunchStoryboard
原始答复:
从苹果的文档中:
如果您的应用程序在iOS 9.0上或之后链接,则必须声明URL
要传递到此方法的方案。通过使用
Xcode项目的Info.plist中的UIDefaultLaunchStoryboard数组
文件对于希望应用程序使用此方法的每个URL方案,
将其作为字符串添加到此数组中
如果您的(iOS 9.0或更高版本)应用程序使用您需要的方案调用此方法
如果未声明,则该方法返回false,无论
设备上已安装适用于该方案的应用程序
您可以阅读更多信息。将此添加到您的Info.plist中,然后尝试调用canOpenURL
<key>LSApplicationQueriesSchemes</key>
<array>
<string>comgooglemaps</string>
</array>
LSApplicationQueriesSchemes
谷歌地图
这与UIDefaultLaunchStoryboard
有什么关系?我认为这是文件中的一个错误。嗯,你是对的。我很抱歉在发布之前没有仔细检查,但我真的没想到苹果的文档中会出现这样的错误。正确的键是LSApplicationsQueriesSchemes
。我已经更新了我的答案。即使在向LSApplicationsQueriesSchemes
添加方案之后,这在iOS10上也不起作用。有什么想法吗?这里有一个输入错误,它不是LSApplicationQueriesSchemes
(复数),而是LSApplicationQueriesSchemes
。我更新了答案谢谢!。另外,苹果的文档似乎已经修复。这是一个多么好的提示,谢谢!如何获得这个值“comgooglemaps”?到今天为止,这个解决方案仍然适用于iOS 12-14