【问题标题】:How to make iOS universal links work inside an iframe如何使 iOS 通用链接在 iframe 中工作
【发布时间】:2016-11-21 23:05:35
【问题描述】:

首先,我们有一个应用程序,我们的域支持 iOS9 和 iOS10 上的通用链接。在登录页面上,有一个元素将“href”属性设置为我们的域。单击它会启动我们的本机应用程序或在浏览器中打开 UL。这是有效的。

但是,当将相同的着陆页放入 iframe(预期用例)中时,该按钮无法按预期工作。我可以在控制台中看到,而不是启动我们的应用程序:“https://domain/path/page.html”不允许显示来自 itms-appss://itunes.apple.com/app/appname/id####### 的不安全内容?吨=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>

【问题讨论】:

    标签: ios iframe ios9 ios-universal-links


    【解决方案1】:

    从 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>
    

    这对我来说很好。

    【讨论】:

    • 没想到这会起作用,但它确实起作用了。谢谢。
    【解决方案2】:

    我们需要更多细节——这里没有足够的信息来获得完整的画面。理想情况下,链接到您的实时登录页面是最好的,但如果做不到这一点,至少有更多关于通用链接指向的信息。

    首先,我怀疑您的通用链接以某种方式重定向到 App Store 页面,该页面将尝试通过 itms-appss:// URI 方案启动 App Store 应用程序本身。自定义 URI 方案在 iFrames have been blocked since iOS 9.3 内重定向,因此这是预期的行为。

    【讨论】:

    • 亚历克斯,感谢您的关注。让我尝试在没有太多细节的情况下进一步澄清这一点。 Universal Link 基本上是指向在 apple-app-site-association 文件中注册的 PHP 文件。因此,如果从顶部窗口或 Notes 应用程序单击此链接,则会启动我们的本机应用程序。 PHP 文件只返回 Location 标头重定向到 iTunes,以便用户可以安装应用程序。如果我们获得有关 iTunes 的日志,似乎 UL 机制在 iframe 中不起作用
    • 这并不让我感到惊讶。如果 iframe 能够意外触发不同的应用程序,用户会感到非常吃惊。对于需要某种用户操作的通用链接,Apple 一直非常保守,因此这听起来可能是一个限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 2018-12-08
    • 2016-08-17
    • 2012-05-20
    • 2012-08-28
    • 2019-09-20
    • 2018-10-23
    相关资源
    最近更新 更多