-canOpenURL: failed for URL: "wtloginmqq2://qzapp" - error: "(null)"
2015-09-13 15:51:10.903[2948:1118021] -canOpenURL: failed for URL: "mqqopensdkapiV3://qzapp" - error: "(null)"
2015-09-13 15:51:10.904[2948:1118021] -canOpenURL: failed for URL: "mqqwpa://qzapp" - error: "(null)"
2015-09-13 15:51:10.905[2948:1118021] -canOpenURL: failed for URL: "mqqopensdkapiV2://qzapp" - error: "This app is not allowed to query for scheme mqqopensdkapiV2"
2015-09-13 15:51:10.906[2948:1118021] -canOpenURL: failed for URL: "mqqOpensdkSSoLogin://qqapp" - error: "This app is not allowed to query for scheme mqqOpensdkSSoLogin"
2015-09-13 15:51:10.906[2948:1118021] -canOpenURL: failed for URL: "mqq://qqapp" - error: "This app is not allowed to query for scheme mqq"
2015-09-13 15:51:10.907[2948:1118021] -canOpenURL: failed for URL: "mqzoneopensdkapiV2://qzapp" - error: "This app is not allowed to query for scheme mqzoneopensdkapiV2"
2015-09-13 15:51:10.908[2948:1118021] -canOpenURL: failed for URL: "mqzoneopensdkapi19://qzapp" - error: "This app is not allowed to query for scheme mqzoneopensdkapi19"
2015-09-13 15:51:10.909[2948:1118021] -canOpenURL: failed for URL: "mqzoneopensdkapi://qzapp" - error: "This app is not allowed to query for scheme mqzoneopensdkapi"
2015-09-13 15:51:10.910[2948:1118021] -canOpenURL: failed for URL: "mqzoneopensdk://qzapp" - error: "This app is not allowed to query for scheme mqzoneopensdk"
2015-09-13 15:51:10.911[2948:1118021] -canOpenURL: failed for URL: "mqzone://qzapp" - error: "This app is not allowed to query for scheme mqzone"
2015-09-13 15:51:10.911[2948:1118021] -canOpenURL: failed for URL: "wtloginmqq2://qzapp" - error: "(null)"
2015-09-13 15:51:10.912[2948:1118021] -canOpenURL: failed for URL: "mqqopensdkapiV3://qzapp" - error: "(null)"
现在app在ios9运行出现了这些,查了下资料。
根据网上的做法。
iOS9 URL Schemes
除了要在项目info URL Types中设置URL Schemes,还需要在info.plist里面增加可信任的调用app,否则回报如下错误
-canOpenURL: failed for URL: "weixin://app/wx9c8771d3c07dfd30/" - error: "This app is not allowed to query for scheme weixin"
-canOpenURL: failed for URL: "wtloginmqq2://qzapp" - error: "This app is not allowed to query for scheme wtloginmqq2"
info.plist加入
<key>LSApplicationQueriesSchemes</key>
<array>
<string>urlscheme</string>
<string>urlscheme2</string>
<string>urlscheme3</string>
<string>urlscheme4</string>
</array>
我加入之后。
本来加入之前提示:
-canOpenURL: failed for URL: "mqqopensdkapiV2://qzapp" - error: "This app is not allowed to query for scheme mqqopensdkapiV2"
加入之后,error原因就没有了。如下:
-canOpenURL: failed for URL: "mqqopensdkapiV2://qzapp" - error: "(null)"
可是仍然是fail的。不知道如何解决?
大家讲道理2017-04-17 16:43:05
要使用iOS9的真机!不要用模拟器测试,不然一直报-canOpenURL: failed for URL: "XXXXXXXXXX" - error: "(null)"。我真机测试通过了。
高洛峰2017-04-17 16:43:05
<key>LSApplicationQueriesSchemes</key>
<array>
<string>mqqOpensdkSSoLogin</string>
<string>mqzone</string>
<string>sinaweibo</string>
<string>alipayauth</string>
<string>alipay</string>
<string>safepay</string>
<string>mqq</string>
<string>mqqapi</string>
<string>mqqopensdkapiV3</string>
<string>mqqopensdkapiV2</string>
<string>mqqapiwallet</string>
<string>mqqwpa</string>
<string>mqqbrowser</string>
<string>wtloginmqq2</string>
<string>weixin</string>
<string>wechat</string>
</array>加了15条 才实现
qq登录绑定,qq支付,qq分享
微信支付,微信登录绑定
新浪登录绑定
支付宝支付,支付宝登录绑定
高洛峰2017-04-17 16:43:05
最好的方法是直接看官方文档
支持http协议
(1)暂时回退到http协议 info plist加
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
(2)添加指定域名为http白名单
2 涉及到客户端跳转 设置scheme到LSApplicationQueriesSchemes
总结:像此类问题 使用第三方的直接看别人官网就行了 要不访问提供方的如微信,QQ,支付宝API官方看开发文档
如果是用sharesdk 友盟此类的 去看他们的开发文档都会第一时间给开发者提供解决方案的
sharesdk分享 iOS9适配文档地址
http://wiki.mob.com/ios9-%E5%AF%B9sharesdk%E7%9A%84%E5%BD%B1%E5%93%8D%EF%BC%88%E9%80%82%E9%85%8Dios-9%E5%BF%85%E8%AF%BB%EF%BC%89/
友盟分享 iOS9适配地址
http://dev.umeng.com/social/ios/ios9
如果是支付其它登陆一类的 也是一样去它们官方 开发文档看看就OK了
iOS有问必答社区为你回答
426981364
有问题可以扣群上直接问
PHP中文网2017-04-17 16:43:05
这个模拟器的一个 bug,如果使用iOS9的真机就可以避免出现该问题,估计 Xcode 后续的升级中会修复掉。
测试 URL Scheme 尽量避免使用模拟器测试,不然一直报
-canOpenURL: failed for URL: "XXXXXXXXXX" - error: "(null)"。
亲测真机通过。
更多 iOS9适配问题请访问--》 《iOS9适配系列教程》
伊谢尔伦2017-04-17 16:43:05
-canOpenURL: failed for URL: "mqzone://sdk" - error: "(null)" 在真机上,仍然会报这个,已经添加<string>mqzone</string>了。而且重启app就好了,一旦调用TecentOAuth的
(void)logout:(id<TencentSessionDelegate>)delegate;
这个方法,再执行登录授权,就会报刚刚那个错误。
我现在把这句删掉了,退出登录的时候直接清除一下TecentOAuth的accessToken,就没问题了
巴扎黑2017-04-17 16:43:05
如果你的应用使用了如SSO授权登录或跳转分享功能,在iOS9下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败。