我已经阅读了很多关于通用链接的文章,但我仍然需要明确一些事情 .
我必须添加到 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 回答
这应该工作正常 . 要明确回答你的问题:
'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动态链接 . 这些将为您提供所有相同的好处(加上更多的灵活性,说实话),没有任何设置问题 .
我们在iOS works 上经历了 302 的方式 . 总的来说,我完全同意Apple正式似乎不支持任何重定向 . 以下案例已在运行iOS 11的iPhone 6上进行了测试 .
这些案例有效:
iOS上的Chrome网站:用户点击链接 A , 302 将他重定向到通用链接 B .
iOS上的Safari网站:用户点击链接 A , 302 将他重定向到通用链接 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 .