您的位置:首页 > 移动开发 > IOS开发

iOS canOpenURL: failed for URL

2016-06-30 15:07 549 查看
在 Xcode 6.4 + iOS 8 时,是不会出现这种情况的,原因是为了强制增强数据访问安全, 从iOS9开始默认会把所有从
NSURLConnection
CFURL

NSURLSession
发出的 HTTP 请求,都改为 HTTPS 请求:


iOS9.x-SDK编译时,默认会让所有从
NSURLConnection
CFURL

NSURLSession
发出的 HTTP 请求统一采用 TLS 1.2(SSL 3.1) 协议。


在进行APP间跳转时经常会遇见这样的问题。

1.如果你的输出信息是-canOpenURL:
failed for URL: "kindle://home" - error: "This app is not allowed to query for scheme kindle"


去你的
target 里面的 Build Settings 下的 Enable Bitcode,把它设置成 NO,这不一定会阻挡你的控制台继续输出这条信息,但是可以保证你的 App 正常运行。




2.如果你的输出信息是
xxxx - error: "This app is not allowed to query for scheme xxxx"


Info.plist 里面建立一个叫 LSApplicationQueriesSchemes 的 Array,把你在xxxx部分看到的词汇一个一个填进去,直至控制台没有任何相关输出即可。

也可以像下面这样直接写Info.plist的UML:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>XXXX(就是你看到的xxxx部分)</string>
</array>

3.关于其他通过
WebView 访问 http 网址引发的控制台报错信息
就像下面这样,强制使用Http协议

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xcode iOS系统方法 ios