当我的应用程序未被安装时,UIWebView中的iOS通用链接将启动Safari?

时间:2016-08-25 06:42:56

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

来自Support Universal Links的Apple指南:

  

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

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

我在未安装应用程序时测试某些应用程序的通用链接,并且他们从未启动Safari以加载下一页,他们仍然将其加载到UIWebView中。

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

实际上我想通过使用cookie来跟踪我的应用程序的安装位置。我可以在Safari中使用下载页面的信息存储cookie,并在安装和打开我的应用程序时使用SFSafariViewController获取cookie,并根据cookie提出不同的观点。

1 个答案:

答案 0 :(得分:1)

您要构建的内容称为“延迟深层链接”。这(加上更多)正是我们在Branch.io提供的。如果您想避免自己配置它的头痛,请看一下。像Pinterest,Airbnb和Tinder这样的应用程序都使用我们。

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

解决方法是将数据存储在您自己的后端。正如您所发现的那样,依赖于设备本身的cookie传递在许多情况下都不会起作用。