gpt4 book ai didi

iframe - ionic : External link in iframe opens in webview (embed youtube player)

转载 作者:行者123 更新时间:2023-12-03 23:35:00 31 4
gpt4 key购买 nike

在我的 ionic (v1.2.4) 应用程序中,有一个带有“在 youtube 上观看”链接的嵌入式 youtube 播放器。如果用户单击此链接,则会在cordova 的 WebView 中打开youtube 网站。它会破坏我的应用程序的当前状态。我想在系统的网络浏览器(应用浏览器插件中的cordova)中打开该链接。

与任何 iframe 中的任何链接相同(vimeo、soundcloud...)

这个链接不能在 iframe 之外用 JS 修改,因为跨域安全问题。所以我无法从 _blank 更新目标属性至 _system .

显示对话框 onbeforeunload不是一个真正的选择,因为它看起来很丑:)

是否有可能避免将页面加载到同一个 webview 或系统的 web 浏览器中?
使用 iframe 的 sandbox 断开链接属性不是一个选项,因为它完全破坏了 youtube 播放器。

感谢和欢呼

ps:我问了这个问题here但无法获得任何有用的信息

最佳答案

感谢 thepio 的提示 allow-intentallow-navigation .我第一次真正深入cordova-whitelist-plugin .最后,我通过设置正确的 allow 解决了我在 android 上的问题config.xml 中的属性

<!-- Allow links to web pages to open in a browser -->
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />

allow-navigation对于安卓。完美的白标解决方案。无法找到如何在 iOS 上执行此操作,因为 iOS 需要 allow-navigation完全加载 iframe 内容的属性。

为了以一种肮脏的方式解决我在 iOS 上的问题,我将它添加到我的 config.xml 中:
<platform name="ios">
<allow-navigation href="https://w.soundcloud.com/player/*"/>
<allow-navigation href="https://www.youtube.com/embed/*"/>
<allow-navigation href="https://player.vimeo.com/video/*"/>
</platform>

现在只加载 iframe 内容本身。幸运的是,iframe 内的每个链接(在 YouTube 上观看、分享、如在 vimeo 上...)都指向另一个域/子域,因此它在 iOS 上被阻止。

如果有任何建议,如何为iOS创建白标解决方案,我全听。

谢谢

关于iframe - ionic : External link in iframe opens in webview (embed youtube player),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36646014/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com