【问题标题】:iOS 9 Universal Links not launching the app from the same domainiOS 9 通用链接未从同一域启动应用程序
【发布时间】:2016-02-06 21:39:30
【问题描述】:

我已设置我的 AASA JSON 文件以在有人访问 myDomain.com/ShowInTheApp/* 时打开应用程序

这适用于 Notes 应用程序、电子邮件、Gmail 应用程序、Safari 上的 Gmail 网络以及 myDomain.com 以外的任何其他网站。

myDomain.com/chooseAppORweb.html 包含指向 myDomain.com/ShowInTheApp/ 的链接时,Safari 总是在同一个选项卡中打开它,应用程序不会启动。我可以点击并按住链接以显示包含条目“在 [我的应用程序名称] 中打开”的上下文菜单,该条目确实会启动我的应用程序。但不是通过单击链接。

当我从另一个域执行完全相同的步骤时,NOTmyDomain.com/chooseAppORweb.html 始终会毫无问题地启动应用程序。

有没有人成功地使用 UL 从同一个域一致地启动应用程序?

另外,如果有 Apple 的文档解释了这些行为,请分享链接。

【问题讨论】:

  • 不幸的是,虽然这没有记录,但这似乎是所需的行为。一旦用户进入您的网站,您就无法尝试将她带入您的应用。
  • 您还会注意到,通过通用链接进入您的应用的用户可以选择打开您的网站——您的网站将显示在状态栏的右上角。我的猜测是,如果用户试图留在移动网站上,Apple 的团队不希望开发人员继续将用户带入应用程序。这是有道理的,即使它有你所描述的不幸的副作用。
  • @st.derrick 感谢您确认该行为。我看到一些帖子可以追溯到 6 月,当时 iOS9 处于测试阶段,一些用户在无法在 Safari 上浏览通用链接目标网页时遇到问题,因为点击任何链接都会打开应用程序。我认为状态栏上的 Breadcrumb Domain 链接会将网站的偏好设置为始终在 Safari 中打开,反转此偏好的智能横幅以及问题中提到的行为都是 Apple 对他们没有解决的问题的快速修复在设计通用链接时预见到。这就解释了为什么它不在文档中

标签: ios safari ios9 deep-linking ios-universal-links


【解决方案1】:

我不确定 Apple 何时将此添加到他们的文档中,但在他们的 Support Universal Links 页面上的第一个注释中进行了解释:

在 iOS 9 及更高版本中,通用链接允许用户在点击WKWebViewUIWebView 视图和 Safari 页面中指向您网站的链接时打开您的应用,此外还有导致调用 openURL: 的链接,例如在邮件、消息和其他应用程序中出现的那些。

当用户在 Safari 中浏览您的网站并点击指向与当前网页相同域中的 URL 的通用链接时,iOS 会尊重用户最可能的意图并在 Safari 中打开该链接。 如果用户点击指向不同域中 URL 的通用链接,iOS 会在您的应用中打开该链接。

对于运行早于 9.0 的 iOS 版本的用户,点击指向您网站的通用链接会在 Safari 中打开该链接。

(已添加重点)

基本上,一旦用户在 Safari 中访问您域中托管的页面,他们在您域中关注的任何链接都将在 Safari 中打开,即使它们被您的应用定义为通用链接。

【讨论】:

  • 我认为苹果对“用户最可能的意图”的假设是愚蠢和令人讨厌的。开发人员定义特定路径作为通用链接的触发器。开发人员放置应该打开应用程序的链接。谁尊重这里的开发者?我知道谁不知道。
【解决方案2】:

正如上面提到的 st.derrick,这是通用链接的就地行为。如果您之前已通过链接被带到应用程序,但在长按提示时选择被带到网站,则打开应用程序的功能将中断。您可以通过再次长按并选择在应用内打开来解决此问题。这不是一个理想的解决方案,但这是我看到它得到修复的唯一方法。我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2015-09-17
    • 2016-04-08
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多