9

使用 chrome iOS 应用程序时,深层链接可以完美运行。但是在 safari 中它停止工作,并且即使安装了应用程序,它也总是重定向到 appstore 页面,或者有时会弹出一个警告,说“safari 无法打开页面,因为地址无效”。几天前一切正常。所以我的猜测是这发生在 ios 9.2 更新之后。有什么解决办法吗?

更新

我尝试使用新手机(以前未安装过哪个应用程序)并安装了该应用程序。

深层链接适用于两种浏览器(Safari 和 Chrome)。

如果您按下 bnc.lt 前进按钮,它将打开适用于 Safari 和 Chrome 的 App Store。

下次打开链接深层链接时:

  • Safari:它询问您是否要在应用商店中打开链接
  • Chrome:它会询问您是否要打开应用程序并同时重定向到应用程序商店。如果您下次单击深层链接时单击在应用中打开,它将在应用中打开。

因此,换句话说,您仍然可以在单击状态栏中的 bnc.lt 转发链接后从 Chrome 打开应用程序。这是因为 Chrome 要求打开应用程序而不是应用程序商店。

对于 Safari,我最终处于不可逆转的状态,即深层链接始终打开应用商店而不是应用。

4

2 回答 2

15

来自 Branch 的 Alex here:这是预期的行为。不幸的是,由于iOS 9.2 中通用链接的更改,我们的后备选项目前相当有限。

TL;DR:这是大多数用户不会遇到的边缘情况,但您可以通过使用我们的Deepviews功能轻松解决它。

基本上,这是您所看到的背后的逻辑:

  1. 当您在未安装应用程序的设备上打开链接时,您最终会访问我们的 bnc.lt 服务器,我们会将您重定向到 App Store,以便您获取应用程序。这很好
  2. 当您在第一次安装应用程序的设备上打开链接时,您的设备会检测到通用链接并立即打开应用程序。所有这一切都在您的设备上本地发生,您甚至无法访问我们的 bnc.lt 服务器。这也不错
  3. 当您按下bnc.lt前进按钮时,您是在告诉您的设备“我不希望您立即打开应用程序......改为显示此链接的 Web 内容”。对于分支链接,此“网络内容”只是对 App Store 的重定向。此时,Branch 无法知道您是否安装了该应用程序,因此我们必须假设它没有安装,并且您得到与上述 1. 相同的处理。这不是很好,但由于 Apple 设计系统的方式,现在我们没有更好的选择
  4. 下次您打开链接时,您的设备会记住您之前按过该bnc.lt按钮,然后直接将您带到 Web 内容。我不确定为什么 Safari 会这样做,因为我无法想象在很多情况下这是可取的,这会给用户带来很多困惑

这里真正的问题是,当您按下bnc.lt绕过应用程序时,您的设备会记住此首选项并在以后每次看到 bnc.lt 链接时执行它。Chrome 仍然“有效”,因为它在 4. 中每次都会主动确认偏好,而 Safari 只是向前推进。接下来发生的事情有几个选项:

  • 在 Apple 的理想世界中,您最终会进入一个普通网页,您只需向上滚动并使用“在应用程序中打开”按钮即可反转此偏好。但由于 Branch 会立即将您重定向到 App Store,因此这不是一个选项。您可以考虑使用我们的Deepviews功能,因为它确实提供了一些真实的 Web 内容来代替您现在看到的即时 App Store 重定向。
  • 在大多数情况下,您仍然可以长按链接并选择在应用程序中打开,但这对不知道该选项的用户没有帮助。
  • 在最坏的情况下,您最终会进入 App Store 页面,然后只需按下Open按钮(而不是Install)。多亏了 Branch 的魔法,你最终还是会出现在正确的地方!
于 2016-03-04T17:06:04.113 回答
1

现在从 iOS 9.2 开始,Apple 不再支持用于深度链接的 URI 方案,开发人员必须实现通用链接才能在 iOS 上正确进行深度链接。

通用链接允许您使用标准 HTTP 或 HTTPS 链接替换自定义 URL 方案。通用链接适用于所有用户:如果用户安装了您的应用,该链接会将他们直接带到您的应用中;如果他们没有安装您的应用程序,该链接将在 Safari 中打开您的网站。

要了解有关通用链接的所有信息,请参阅

如何在 iOS App 中支持 Universal Links 并为其设置服务器?

例子

https://github.com/vineetchoudhary/iOS-Universal-Links


更新 [ 1 ]

分支链接如何工作(Branch.io)

如果您锁定了 Branch 上下文深层链接的基础知识。您发现 Branch.io 也使用传统的深度链接

1. 创建链接 当您集成了 Mobile SDK 后,您可以在每次用户在您的应用程序中点击分享或邀请其他用户时创建一个 Branch 链接。您的应用程序调用 Branch.io,Branch.io 返回一个 Branch 链接。

2. 将数据绑定到链接

3.点击链接 在此处输入图像描述

4. 使用数据


检查点击链接步骤,Branch.io 只是将您的网站 URL 与您的应用 URI 方案映射,但 Safari 不再支持 URI 方案。因此,迁移到 Universal Links 只是为了在 iOS 9.2 中进行深度链接的选项,或者您可以等待 Branch.io 的一些解决方案。谢谢。

于 2016-03-04T06:27:29.937 回答