Cordova iOS无法打开链接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cordova iOS无法打开链接相关的知识,希望对你有一定的参考价值。

我有一个正在为androidios编译的cordova项目。我有一些链接在系统浏览器中打开一个网站,例如:

window.open('https://example.com', '_system');
cordova.InAppBrowser.open('httos://example.com', '_system');

这在Android上运行良好,但在iOS上没有任何反应,甚至没有'_blank'。

我也尝试像其他推荐的那样添加inappbrowser插件(https://github.com/apache/cordova-plugin-inappbrowser),但是当我实现它时没有任何改变。

有关如何在iOS上的系统浏览器中打开链接的任何想法? Google上的每个来源都只是说添加了inappbrowser插件,或只是使用'_system'(但这就是我一直在做的!)。

我不认为这是我的白名单问题,因为它在Android上工作正常,我的应用程序也可以在iOS上从互联网上加载资源。一切都有效,除了在iOS上打开链接。

更新:调用cordova.InAppBrowser.open()在从onDeviceReady事件调用时起作用,但在事件之外不起作用。我甚至试过设置window.open,但那没用。

答案

在一些论坛上进行了一些无情的挖掘之后,我在离子论坛上找到了这篇文章:https://forum.ionicframework.com/t/cordova-inappbrowser-plugin-stopped-working-in-ios-10/64361/9

通过将我的内容安全策略更改为:

<meta http-equiv="Content-Security-Policy" content="img-src * 'self' data:; default-src * 'self' gap: wss: ws: ; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval';">

有效!然而,我想更好地理解为什么这个CSP工作,而不是通常建议每个人都说使用的'gap:// ready'。

以上是关于Cordova iOS无法打开链接的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap / Cordova ios外部链接iframe无法在safari中打开

Cordova ios 应用程序 - 由于弹出窗口阻止程序而无法打开链接

Cordova 3.1 在 iOS6 上的 Safari 中打开链接

PhoneGap Cordova InAppBrowser.open 在 iOS 中切换应用程序之前不会打开链接

打开页面cordova iOS不使用HTML内容

cordova inappbrowser 无法在 iOS 上打开外部 url