在 Ionic Cordova 应用程序中,如何允许通过不同来源的内容在系统浏览器中打开 link

In Ionic Cordova app how to permit opening a link in system browser by content of different origin

我的离子应用程序为加载 HTML 横幅的不同来源的广告服务提供了 iframe。当用户单击 HTML 横幅时,预计会在系统浏览器中打开 link。广告服务使用 window.open() 并且这是浏览器抛出以下错误的地方(为了简单起见更改了名称)。

不安全 JavaScript 尝试为具有 URL“http://localhost/send-money' from frame with URL 'https://sample.test.com/t17/”的框架启动导航。尝试导航的框架以其顶级 window 为目标,但与其目标既不是同源的,也没有收到用户手势。

我在我的 config.xml 中将 test.com 列入了白名单,这样我就可以在我的离子应用程序的 iframe 中加载 HTML 来自不同来源的内容。但是如何允许来自不同来源(test.com)的 HTML 的 links 在系统浏览器中打开。显然,我正在寻找 Android 和 iOS 版本。

我通过在 iframe 元素中引入 sandbox 属性解决了这个问题。 test.com 中的 HTML 使用 window.open(target) 在浏览器实例中打开 link。有几个可用的令牌,但至少需要如下才能使其在 Android.

上运行
<!--incomplete line below-->    
<iframe sandbox="allow-top-navigation allow-scripts allow-popups"