首先,我们有一个应用程序,我们的域支持iOS9和iOS10上的通用链接。在着陆页上有一个元素,其中'href'属性设置为我们的域。单击它可启动我们的原生应用程序或在浏览器中打开UL。这很有效。
然而,当同一个登录页面放在iframe(预期用例)中时,该按钮不能按预期工作。而不是启动我的应用程序,我可以在控制台中看到:“https://domain/path/page.html”不允许显示来自itms-appss的不安全内容://itunes.apple.com/app/appname/id###### #?MT = 8。 这意味着UL机制不起作用,浏览器实际上检索了URL(这又是一个简单的PHP文件,发送Location头重定向到iTunes)
我想可能是我们的应用程序或页面或子域有些东西所以我试图为Instagram应用程序添加类似的链接。这没有帮助,因为行为是相同的:UL机制不起作用,浏览器检索到UL的内容。
伪HTML:
<body>
<a href="universal_link">Works</a>
<iframe src="your_random_local_page.html">
<a href="universal_link">Doesn't work</a>
</iframe>
</body>
答案 0 :(得分:2)
离开iframe
<body>
<a href="universal_link">Works</a>
<iframe src="your_random_local_page.html">
<a target="_top" href="universal_link">Doesn't work</a>
</iframe>
</body>
这对我来说很好。
答案 1 :(得分:0)
我们需要更多细节 - 这里还没有足够的细节来全面了解。理想情况下,指向您的实时着陆页的链接最好,但如果失败,至少有关于Universal Link所指向的信息的更多信息。
初步,我怀疑您的Universal Link会以某种方式重定向到App Store页面,该页面将尝试通过itms-appss://
URI方案启动App Store应用程序。自定义URI方案在iFrames have been blocked since iOS 9.3中重定向,因此这是预期的行为。