cordova - 带有 wkwebview 插件的 Cordova ios - window.open(url, "_system") 不起作用
问题描述
我无法在系统浏览器上打开外部链接。
Cordova 版本 9.0.0 (cordova-lib@9.0.1)
活动插件:
"cordova-ios": "^5.1.1",
"cordova-plugin-keyboard": "1.2.0",
"cordova-plugin-splashscreen": "^5.0.3",
"cordova-plugin-wkwebview-engine": "^1.2.1"
我在config.xml上值得注意的几行
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
<preference name="KeyboardDisplayRequiresUserAction" value="false" />
<preference name="BackupWebStorage" value="local"/>
我试过:
window.open(url, "_self")
window.open(url, "_blank")
window.open(url, "_system")
但是唯一在控制台中起作用并返回某些内容的函数是带有“_self”参数的函数。我尝试过使用 HTML 标签:
<a href="http://url" target="_system">foo</a>
但它也不起作用。
试图找出问题的根源,在我看来,在 ios 的 WebKit WebView 上实现 wkwebview 插件的某个地方存在错误,可能与 Apple 最近为避免部署基于 UIWebView 的应用程序所做的更改有关和 ios sdk <13 在 App Store 上
解决方案
我花了几个小时试图让它工作。我找到了解决 @zestia/cordova-plugin-wkwebview-engine-windowopen 插件问题的方法。
使用以下命令添加到您的项目中:
科尔多瓦插件添加@zestia/cordova-plugin-wkwebview-engine-windowopen