目标是在应用程序启动时在webview中打开外部URL。
我创建了新的Cordova项目:
cordova create test
cd test
cordova platform add ios
cordova plugin add cordova-plugin-inappbrowser
我在www/index.html
:
<script>
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
cordova.InAppBrowser.open('https://google.com', '_self');
}
</script>
我使用cordova run ios
测试应用,app启动,然后我知道了:
拒绝执行脚本,因为它的哈希值,其随机数或“不安全 - 内联”#39;既不出现在script-src指令中,也出现在内容安全策略的default-src指令中。
所以我将'unsafe-inline'
添加到内容安全策略标记中,它变为:
<meta
http-equiv="Content-Security-Policy"
content="
default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval' 'unsafe-inline';
style-src 'self' 'unsafe-inline';
media-src *;
img-src 'self' data: content:;">
我使用cordova run ios
测试应用,app启动,但它在Safari中打开https://google.com
:
我该如何在Cordova webview中打开网址?
我也试过了window.location="https://google.com"
,同样的行为。
答案 0 :(得分:7)
我在config.xml
:
<allow-navigation href="*" />
我以某种方式错过了the docs。
默认情况下,仅允许导航到file:// URL。要允许其他URL,您必须在config.xml中添加标记:
答案 1 :(得分:0)
从docs看起来您需要将target
设置为_blank
才能在InAppBrowser
中打开:
cordova.InAppBrowser.open('https://google.com', '_blank');
_self :如果网址在白名单中,则在 Cordova WebView 中打开,否则会在 InAppBrowser 中打开。
_blank :在 InAppBrowser 中打开。
_system :在系统的网络浏览器中打开。