上面的代码总是返回false
if {(UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!))}
我猜这是iOS10中发现的问题。 我试图打开谷歌地图应用程序,如果有一个安装或尝试打开苹果地图,所以想使用canOpenURL。有没有其他选择
答案 0 :(得分:18)
将此添加到您的Info.plist,然后尝试调用canOpenURL。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>comgooglemaps</string>
</array>
答案 1 :(得分:4)
应用的 plist 文件中使用的正确密钥为LSApplicationQueriesSchemes
,而不是Apple文档中所述的UIDefaultLaunchStoryboard
。
来自Apple的文档:
如果您的应用在iOS 9.0上或之后进行了关联,则必须声明该网址 您想要传递给此方法的方案。这样做是通过使用 Xcode项目的Info.plist中的UIDefaultLaunchStoryboard数组 文件。对于您希望应用与此方法一起使用的每种网址方案, 将其添加为此数组中的字符串。
如果您的(iOS 9.0或更高版本)应用使用您的方案调用此方法 没有声明,该方法返回false,无论是否 该方案的相应应用程序已安装在设备上。
您可以详细了解here。