【发布时间】:2023-03-09 21:49:01
【问题描述】:
我尝试从 facebook/twitter iOS 应用程序打开一个 iOS 应用程序。
为此,我使用 App 链接,使用 info.plist 中的密钥:CFBundleURLSchemes。
我做什么,为了在 twitter/facebook 帖子中有一个可接受的链接,我使用了一个虚假网页,该网页具有将我重定向到我的应用程序的 url 链接的功能。 例如:“myapp://”
如果我使用 safari 打开我的 facebook 帖子 (url),这会很好。
但是当涉及到 facebook/twitter 应用程序时,它会重定向到新网页,但不会提示弹出窗口打开我的应用程序。我可以在日志中看到错误:“此应用不允许查询方案 myapp”
我的第一个理解是,这是由于 iOS 9 的限制,您应该在白名单 [LSApplicationQueriesSchemes] 中提及您接受从您的应用打开哪些应用网址。
但令人惊讶的是,当尝试从 gmail 应用程序(不是操作系统应用程序)打开相同的网页时,它会毫无问题地打开我的应用程序。
我做错了吗?
【问题讨论】:
-
我猜这是因为 facebook/twitter 没有使用默认的 iOS 浏览器,除非他们在 LSApplicationQueriesSchemes 下的 info.plist 中列出任何应用程序,否则他们无法打开任何应用程序
-
这可能是因为,正如您所提到的,Facebook 和 Twitter 内部浏览器处理通用链接的方式。许多不同的应用程序和浏览器破坏了通用链接(与 iOS9.2 及更高版本相关),这在许多情况下包括 Facebook 和 Twitter。如果已经打开了 web 视图,您有时可以将其用于 Twitter 和/或 Facebook。它们不适用于提要/主视图的应用程序内。它们还必须是跨域的。
-
我通过在我的网页中使用元数据解决了这个问题。对于 facebook,他们称之为“App Link”,对于 twitter:“App card”
标签: ios facebook ios9 deep-linking applinks