Cordova iOS无法打开链接

问题描述 投票:0回答:1

我有一个正在为Android和iOS编译的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,但那没用。

ios cordova hyperlink
1个回答
0
投票

在一些论坛上进行了一些无情的挖掘之后,我在离子论坛上找到了这篇文章: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'。

© www.soinside.com 2019 - 2024. All rights reserved.