【问题标题】:when my app is not intalled, iOS universal link in UIWebView will launch Safari?当我的应用程序未安装时,UIWebView 中的 iOS 通用链接将启动 Safari?
【发布时间】:2017-01-01 11:28:20
【问题描述】:

来自Support Universal Links 中的 Apple 指南:

当您支持通用链接时,iOS 9 用户可以点击指向您网站的链接并无缝重定向到您安装的应用程序,而无需通过 Safari。如果您的应用尚未安装,点击指向您网站的链接可在 Safari 中打开您的网站。

但我很困惑,如果我的应用程序没有安装,并且我在另一个应用程序的 UIWebView 中点击我的应用程序的通用链接,系统会启动 Safari 应用程序来加载我的网站,还是仍然在 UIWebView 中加载它?

我在未安装应用时测试了一些应用的通用链接,它们从不启动 Safari 加载下一页,它们仍然在 UIWebView 中加载。

我想知道是否可以启动 Safari,但不能停留在 UIWebView。我需要在 apple-app-site-association 文件中进行任何配置吗?

实际上我想通过cookie来跟踪我的应用程序是从哪里安装的。我可以在Safari中存储一个带有下载页面信息的cookie,并在我的应用程序安装和打开时使用SFSafariViewController获取cookie并呈现根据 cookie 的不同视图。

【问题讨论】:

  • 您可以将http:// 替换为itms://itms-apps:// 以避免重定向。
  • 对于第三方应用来说,使用 URI 方案并不是一个很好的解决方案,因为如果没有安装该应用,则会出现错误消息并且不会发生其他任何事情。

标签: ios iphone uiwebview deep-linking ios-universal-links


【解决方案1】:

您尝试构建的内容称为“延迟深度链接”。这(还有更多)正是我们在Branch.io 提供的。如果你想避免自己配置它的麻烦,看看这个。出于这个原因,Pinterest、Airbnb 和 Tinder 等应用都使用了我们。

Apple 的文档指的是独立 Safari 浏览器的默认行为。使用UIWebView 处理应用程序内的链接会取代这一点,并且无法自动从源应用程序跳出到主 Safari 应用程序。

解决方法是将数据存储在您自己的后端。正如您所发现的,在很多情况下,依靠设备本身的 cookie 传递是行不通的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-23
    • 2015-10-29
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多