![](/img/trans.png)
[英]how do I disable canOpenURL? I don't want my UIWebView to open up the official app
[英]Xcode 7 + canOpenURL, how to have Facebook and Twitter to open my own app links
在Xcode 7之前,它工作正常。 当我在Facebook和Twitter上发布诸如“ myapp:// mylink?id = 1”之类的链接以进行社交媒体共享时,用户可以单击它,并且如果已安装,它将打开我自己的iOS应用程序。 我知道xcode 7限制了50个url方案的限制,任何应用程序在实际进行“ openUrl”操作之前都可以询问“ canOpenUrl”。 显然,Facebook和Twitter仍在打开链接(它们在其应用程序内部的UIWebView中打开)之前检查canOpenUrl,并且由于限制为50,因此无法将世界上所有应用程序的自定义url方案添加到其应用程序plist中,因此我的应用程序现在无法使用我的自定义网址方案从FB和Twitter打开。 日志在控制台上显示以下内容:
Twitter[827] <Warning>: -canOpenURL: failed for URL: "myapp://mylink?id=1" -
error: "This app is not allowed to query for scheme myapp"
现在的问题是,有什么办法可以像以前一样使用户可以在FB和Twitter上单击某些链接(myapp:// mylink?id = 1),然后通过自定义网址方案打开我自己的应用?
仅供参考,我实际上在这些网站上发布了诸如http://myweb.com/link?id=1之类的链接,并且该链接是根据HTTP标头请求在我的网络服务器上处理的,以决定重定向到实际的网站,或者如果是iOS,重定向到myapp:// mylink?id = 1,并且如果Android然后重定向到另一个android应用程序的url方案等。我测试了直接将myapp:// mylink?id = 1链接直接发布到Facebook和Twitter上的情况,不能给出相同的错误。
附加: iOS9的新规则是,您需要在应用程序plist中添加以下内容(最多50个),以便您的应用程序可以在操作系统中查询canOpenURL,但是对于大型应用程序(如FB和Twitter),它也变得不可用:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>myapp-custom-url-scheme</string>
</array>
从围绕研究此问题的阅读中得出的解决方案是:
好的,Facebook和Twitter最近发布了可解决此问题的更新。 好像他们不再检查canOpenURL,并让任何应用程序的自定义url方案打开,除非他们正在采取其他方法对其进行验证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.