在Xcode 7之前,它运行良好。当我发布像" myapp:// mylink?id = 1"在Facebook和Twitter上进行社交媒体共享,用户可以点击它,如果安装了它,它将打开我自己的iOS应用程序。我知道xcode 7限制了50个url方案,任何应用程序都可以询问" canOpenUrl"在实际进行" openUrl"之前。显然Facebook和Twitter都在打开链接之前检查了canOpenUrl(它们在他们的应用程序中的UIWebView中打开),并且因为他们无法添加所有世界的应用程序'由于50限制,我的应用程序现在无法通过我的自定义网址方案从FB和Twitter打开,因此自定义网址计划进入他们的app plist。日志在控制台上显示以下内容:
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方案等我测试只是直接在Facebook和Twitter上发布myapp:// mylink?id = 1链接,它仍然没有工作给出同样的错误。
添加: iOS9的新规则是你需要在你的应用程序plist中添加最多50个以下内容,以便你的应用程序可以在操作系统中查询canOpenURL,但它也无法用于大型应用程序,如FB&amp; Twitter的:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>myapp-custom-url-scheme</string>
</array>
在我阅读有关研究此问题的内容时,解决方案是:
答案 0 :(得分:0)
好的,Facebook和Twitter最近发布了现已修复此问题的更新。 好像他们不再检查canOpenURL,并让任何应用程序的自定义网址方案打开,除非他们正在采取其他方式来验证它。