【问题标题】:Branch.io Deeplink not working in safari in ios 9, But it works in chromeBranch.io Deeplink 在 ios 9 的 safari 中不起作用,但在 chrome 中有效
【发布时间】:2016-03-04 05:42:06
【问题描述】:

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

更新

我尝试过使用新手机(之前没有安装过哪个应用)并安装了该应用。

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

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

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

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

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

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

【问题讨论】:

  • 这是因为 iOS 9 中引入了通用链接,旨在替换应用 URI 方案。 Branch.io 有一篇博客文章解释了相同的内容以及如何在您的应用程序中实现通用链接。 blog.branch.io/…

标签: ios branch.io ios-universal-links deeplink


【解决方案1】:

来自 Branch 的 Alex here:这是预期的行为。不幸的是,由于the changes to Universal Links in iOS 9.2,我们的后备选项目前相当有限。

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

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

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

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

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

【讨论】:

  • 很好的解释,但这些话In Apple's ideal world 让我很开心:P
  • 感谢您的解释。我们希望我们将来能很好地解决这个问题。
  • @AlexBauer 我遇到了同样的问题,我什至没有按下 bnc.It 前进按钮,但即使安装了应用程序,它也总是重定向到 appstore 页面,或者有时会弹出警告说“safari 不能打开页面,因为地址无效”。我应该如何使它工作?
  • 它在 ios8 上运行,仅在 ios9 上的 chrome 上运行,对我来说也不是 safari
  • @Hazim 这些听起来像是尚未完全配置通用链接的应用程序的症状。我们的文档中有一个 troubleshooting page 可能会有所帮助,或者随时使用 branch.io 标签发布新问题,我会立即加入!
【解决方案2】:

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

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

要全面了解通用链接,请参阅

How to support Universal Links in iOS App and setup server for it?

示例

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


更新 [1]

How Branch links work (Branch.io)

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

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

2。将数据绑定到链接

3.点击链接

4.使用数据


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

【讨论】:

  • 我正在使用 branch.io 进行深度链接。我没有使用原生方式。只有在 Safari 中单击状态栏中的前进箭头后才会出现问题。
  • @RockyPerera 请检查我答案的更新部分
  • 感谢您的解释。我使用分支是因为我希望用户重定向到应用程序中的点击页面,即使用户是第一次从应用商店下载它。这不是当地人目前给出的。我已经更新了这个问题。看看能不能给个意见。
  • 这是对 Branch 的预通用链接重定向的准确概述。谢谢,@VineetChoudhary!此图的来源和其他详细信息here。我们现在确实支持通用链接:这是我们的文档页面,了解如何启用它们:dev.branch.io/getting-started/universal-app-links/overview
  • @RockyPerera 所以最后@alex-bauer 来自Branch.io here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多