禁用Twitter Universal Deep Links

时间:2015-09-28 13:40:02

标签: objective-c twitter uiwebview ios9

更新: Twitter似乎解决了这个问题。单击授权按钮现在可以使用!谢谢大家的回复。

我有一个UIWebView打开并指向Twitters Oauth / Authorize网页。用户登录Twitter详细信息并使用Twitter帐户验证我们的应用程序的使用。在Twitter 6.37 iOS应用程序发布之前,这个过程非常完美。现在发生的事情是,当WebView检测到https://twitter.com/oauth/authorize?oauth_token而不是留在WebView中时,它会打开本机Twitter应用程序并死掉。如果您卸载Twitter应用程序,一切都会像在WebView中一样工作。我怎样才能防止这种情况发生?我想留在我的UIWebView中,而不是自动打开深层链接。我一直在阅读iOS 9中新的URL深层链接更改,但不确定如何将它们从我的应用程序停止到其他本机应用程序。谢谢你的帮助!

enter image description here

3 个答案:

答案 0 :(得分:4)

作为一种解决方法,在twitter身份验证屏幕中,我们可以使用iOS键盘上的Go按钮,而不是使用Web视图上的登录按钮,直到twitter修复。 为清晰起见,请参阅随附的屏幕截图链接。

Screenshot for the workaround

答案 1 :(得分:3)

我也遇到了这个问题,并且发现这是因为我的授权端点设置为https://twitter.com/oauth/authorize?oauth_token="+oauthToken(我相信这是在原始文档中)。如果您添加api作为子域:https://api.twitter.com/oauth/authorize?oauth_token="+oauthToken,它将不再触发深层链接并加载推特应用。

答案 2 :(得分:1)

我通过Xamarin问题回答了这个问题:

除非Twitter删除/更新" https://www.twitter.com/apple-app-site-association"的应用部分。允许旁路或辅助oauth不在apple-app-site-association文件中,我不知道你会怎么做。这些文件已签名,iOS将在操作系统级别处理它们。

我没有使用continueUserActivity委托以及传递给从UNI链接启动的应用程序的NSUserActivity对象,但我没有看到启动应用程序(即Twitter)将控制权返回到原始应用程序的方法那时oauth呼叫链也会被打破....

  • 独特的。与自定义网址方案不同,其他应用无法声明通用链接,因为它们使用指向您网站的标准HTTP或HTTPS链接。

  • 安全。当用户安装您的应用时,iOS会检查您上传到网络服务器的文件,以确保您的网站允许您的应用代表其打开网址。只有您可以创建并上传此文件,因此您的网站与您的应用的关联是安全的。

通过:https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html

我会向Twitter的开发论坛报告一个问题(错误?):https://twittercommunity.com