首页 文章

iOS深层链接(通用链接)通过子域

提问于
浏览
3

我已经阅读了很多关于通用链接的文章,但我仍然需要明确一些事情 .

我必须添加到 http://www.domain.com 的通用链接,但由于某些原因,我将无法使我的网站获得SSL认证,甚至在根文件夹中将apple-app-site-association与https放在一起 . 所以我想以不同的方式做到这一点,我会将 apple-app-site-association 文件放在子域的根目录中,让我们说 https://www.app.domain.com/apple-app-site-association

然后,只要通用链接可用,我将打开与该子域的每个通用链接,如果没有通用链接,则将 https://www.app.domain.com 重定向到 http://www.domain.com .

Questions in my mind :-

apple说 - 文件需要通过HTTPS访问 - 没有任何重定向 - 在https:/// apple-app-site-association . 在这一行中,没有任何重定向,苹果的意思是什么?当apple找不到与特定URL相关的任何通用链接时,它本身会将其重定向到safari . 这是添加通用链接的安全方式,还是必须将我们的主域名放在https上,或者至少在https上使用apple-app-site-association

2 回答

  • 1

    这应该工作正常 . 要明确回答你的问题:

    • 'Without redirects'表示当iOS请求 https://www.app.domain.com/apple-app-site-association 时,它必须在该地址找到该文件 . 你不能有任何类型的重定向(Javascript,301,302等)

    • 如果URL对于Universal Links无效,因为您没有使用 apple-app-site-association 文件中的包含规则覆盖它,则会使用Safari打开它 . 如果URL在没有有效 apple-app-site-association 文件的另一个域上(例如, http://www.domain.com/ ),则它也将在Safari中打开 .

    • 是的,没关系 . 绝对是一种解决方法,但并非不安全 .

    您还应该调查托管的深层链接服务,例如Branch.io(完全披露:我在分支团队中)或Firebase动态链接 . 这些将为您提供所有相同的好处(加上更多的灵活性,说实话),没有任何设置问题 .

  • 4

    我们在iOS works 上经历了 302 的方式 . 总的来说,我完全同意Apple正式似乎不支持任何重定向 . 以下案例已在运行iOS 11的iPhone 6上进行了测试 .

    这些案例有效:

    • iOS上的Chrome网站:用户点击链接 A302 将他重定向到通用链接 B .

    • iOS上的Safari网站:用户点击链接 A302 将他重定向到通用链接 B .

    • iOS上的Gmail应用:用户点击电子邮件中的链接,Gmail会打开外部Chrome浏览器,这会打开一个Google链接,重定向到链接 A ,通过302重定向到Universal Link B . (此案例仅适用于安装了Chrome的情况,在Gmail设置中,用户明确将默认浏览器更改为Chrome)

    这些情况不起作用:

    • Apple Mail:用户点击电子邮件中的链接 A 并打开外部Safari . 302发生并打开通用链接 B . 结果:应用程序无法打开

    • Gmail应用:用户点击电子邮件中的链接 A ,并打开Gmail inAppBrowser(可能是WKWebview?) . Gmail通过谷歌服务器从电子邮件重定向每个链接,因为第二步链接 A 被打开(不知道通过302或其他方法)然后302发生并打开通用链接 B . 结果:应用程序无法打开

    不幸的是,你可以看到在某些情况下它不起作用 . 在这些情况下,iOS上的Apple Mail和Gmail对我们这里的大多数人来说都非常重要,我认为这是一个非常重要的,你不应该使用它 .

    我们使用Adjust链接进行了测试,因此在应用程序未打开的情况下,调整打开AppStore以下载应用程序 .

    对于所有感兴趣的调整:我们通过打开链接https://app.adjust.com/进行了测试...在我们的应用程序监听的相应通用链接https://XXXXXXX.adj.st/上有一个302 .

相关问题