如何使iOS通用链接在iframe内部工作

时间:2016-11-21 23:05:36

标签: ios iframe ios9 ios-universal-links

首先,我们有一个应用程序,我们的域支持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>

2 个答案:

答案 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中重定向,因此这是预期的行为。