【iOS开发】canOpenURL: failed for URL
如图是在我启动一个 Xcode 7 + iOS 9 的 App 之后,控制台的输出。
这在 Xcode 6.4 + iOS 8 时,是不会有的情况,原因是【为了强制增强数据访问安全, iOS9 默认会把所有从NSURLConnection
、 CFURL
、 NSURLSession
发出的 HTTP 请求,都改为 HTTPS 请求:iOS9.x-SDK编译时,默认会让所有从NSURLConnection
、 CFURL
、 NSURLSession
发出的 HTTP 请求统一采用 TLS 1.2(SSL 3.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 正常运行。
②如果你的输出信息是 xxxx - error: "This app is not allowed to query for scheme xxxx"
(在这里因为我的 App 集成了分享到QQ、微信、微博的功能,xxxx部分我看到了 mqq、wechat、sinaweibosso 等多条信息)
去 Info.plist 里面建立一个叫 LSApplicationQueriesSchemes 的 Array,把你在xxxx部分看到的词汇一个一个填进去,直至控制台没有任何相关输出即可。
③关于其他通过 WebView 访问 http 网址引发的控制台报错信息
<key>NSAppTransportSecurity</key>
<dict>
<!--Include to allow all connections (DANGER)-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
如之前所说,Apple 希望我们访问相对安全的 HTTPS,所以在你需要访问 HTTP 时,
虽 Apple 不建议,但可通过在 Info.plist 中声明如上图所示的内容,倒退回不安全的网络请求,这样依然能让 App 访问指定 HTTP,甚至任意的 HTTP。
原文链接:http://www.jianshu.com/p/e38a609f786e
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
最新文章
- 详细分析Android viewpager 无限循环滚动图片
- Ubuntu安装Mysqlcluster集群
- gulp启动一个小型web服务器配置&;browserify(require)
- Linux系统重启python程序
- zjuoj 3604 Tunnel Network
- SVM 简要推导过程
- Jquery easyui datagrid 删除多行问题
- 关于三星A7屏幕锁已由管理员、加密政策,或证书存储禁用
- POJ 2386 Lake Counting
- 关于ql createNativeQuery生成json数据
- 案例分析:java中substring引发的Full gc
- HR筒子说:程序猿面试那点事
- Java学习笔记之自定义异常
- windows下安装redis以及redis扩展,设置redis为windows自启服务
- 30分钟学会使用Spring Web Services基础开发
- Asp.net mvc 中Action 方法的执行(二)
- git常用命令总结--廖雪峰老师Git教程命令总结
- MailKit系列之附件分离
- vue-Swiper-awsome
- WinForm多语言版本实战项目演练
热门文章
- 使用js获取url里的指定参数
- leetcode 之Set Matrix Zeroes(10)
- HDU-2243
- ConcurrentMap.putIfAbsent(key,value) 用法讨论
- Windows下上传项目到github
- hdu 3277(二分+最大流+拆点+离线处理+模板问题...)
- 关于多属性查找问题的sphinx解决方案
- AC日记——妖梦拼木棒 洛谷 P3799
- js判断网络连接情况:navigator.onLine
- 出现Unrecognized field ";state"; (class com.jt.manage.pojo.ItemCat)异常