gpt4 book ai didi

ios - Xcode 7 + canOpenURL,如何让Facebook和Twitter打开我自己的应用链接

转载 作者:行者123 更新时间:2023-12-01 16:28:08 24 4
gpt4 key购买 nike

在 Xcode 7 之前,它运行良好。当我在 Facebook 和 Twitter 上发布类似“myapp://mylink?id=1”的链接以进行社交媒体共享时,用户可以单击它,如果安装了它,它将打开我自己的 iOS 应用程序。我知道 xcode 7 限制了 50 个 url 方案,任何应用程序都可以在实际执行“openUrl”之前询问“canOpenUrl”。显然 Facebook 和 Twitter 在打开链接之前仍在检查 canOpenUrl(它们在其应用程序内的 UIWebView 中打开),并且由于 50 个限制,他们无法将世界上所有应用程序的自定义 url 方案添加到他们的应用程序 plist 中,我的应用程序现在无法使用我的自定义 url 方案从 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),然后通过自定义 url 方案打开我自己的应用程序?

仅供引用,我实际上发布了 http://myweb.com/link?id=1 之类的链接在这些网站上,链接在我的网络服务器上根据 HTTP header 请求进行处理,以决定重定向到实际的网络,或者如果 iOS 则重定向到 myapp://mylink?id=1,如果 Android 然后重定向到另一个 url android 应用程序等的方案。我只在 Facebook 和 Twitter 上直接发布 myapp://mylink?id=1 链接进行了测试,但它仍然无法正常工作,给出同样的错误。

添加:
iOS9 的新规则是您需要将最多 50 个以下内容添加到您的应用程序列表中,以便您的应用程序可以向操作系统查询 canOpenURL,但它也会导致无法用于 FB 和 Twitter 等大型应用程序:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>myapp-custom-url-scheme</string>
</array>

从我对研究这个问题的阅读中对我来说,解决方案是:
  • Apple 应该将此限制更改为基于更多速率限制,以便滥用应用程序(如亚马逊之类)不会使用它来扫描所有已知的 url 方案来构建应用程序安装统计信息,
  • 或者 Facebook 和 Twitter 等大型社交媒体网站应该停止检查 canOpenURL,直接打开 URL 而不进行验证。
  • 甚至更好的是,我们应该为自定义 URL 方案 namespace 构建一些集中式数据库,iOS 和其他应用程序都应该将它用于这种通用目的。
  • 最佳答案

    好的,Facebook 和 Twitter 最近发布了已修复此问题的更新。
    似乎他们不再检查 canOpenURL,并让任何应用程序的自定义 url 方案打开,除非他们正在做一些其他方式来验证它。

    关于ios - Xcode 7 + canOpenURL,如何让Facebook和Twitter打开我自己的应用链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34109705/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com