以下代码在iOS 8.4及更早版本中运行良好,但是从iOS 9.0开始,它始终会发出警告并始终提供false
。
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"comgooglemaps-x-callback://"]]
警告如下:
-canOpenURL: failed for URL: "comgooglemaps-x-callback://" - error: "This app is not allowed to query for scheme comgooglemaps-x-callback"
有没有人知道,为什么它在iOS 9中失败以及为什么把错误抛到This app is not allowed to query for scheme comgooglemaps-x-callback
,是否需要查询它的权限?
修改
我在info.plist中添加了以下项目,但它仍然存在同样的问题。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>comgooglemaps</string>
<string>comgooglemaps-x-callback</string>
</array>
答案 0 :(得分:7)
您必须在Info.plist中添加一个LSApplicationQueriesSchemes条目,并列出您希望应用查询的方案。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>urlscheme</string>
<string>urlscheme2</string>
<string>urlscheme3</string>
<string>urlscheme4</string>
</array>
请参阅http://useyourloaf.com/blog/querying-url-schemes-with-canopenurl.html(还包含指向相应WWDC15-Session-Video的链接)