InAppBrowser.open 在浏览器而不是 WebView 中打开
InAppBrowser.open opens in browser instead of the WebView
目标是在应用程序启动时在 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
测试应用程序,应用程序启动,我得到这个:
Refused to execute a script because its hash, its nonce, or 'unsafe-inline' appears in neither the script-src directive nor the default-src directive of the Content Security Policy.
所以我将 '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
测试应用程序,应用程序启动,但它在 Safari 中打开 https://google.com
:
我怎么在 Cordova webview 本身中打开 url?
我也尝试过 window.location="https://google.com"
,同样的行为。
从 docs 看来您需要将 target
设置为 _blank
才能在 InAppBrowser
:
中打开
cordova.InAppBrowser.open('https://google.com', '_blank');
_self: Opens in the Cordova WebView if the URL is in the white list, otherwise it opens in the InAppBrowser.
_blank: Opens in the InAppBrowser.
_system: Opens in the system's web browser.
我在 config.xml
中遗漏了这个:
<allow-navigation href="*" />
我不知何故错过了 the docs。
By default, navigations only to file:// URLs, are allowed. To allow others URLs, you must add tags to your config.xml:
目标是在应用程序启动时在 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
测试应用程序,应用程序启动,我得到这个:
Refused to execute a script because its hash, its nonce, or 'unsafe-inline' appears in neither the script-src directive nor the default-src directive of the Content Security Policy.
所以我将 '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
测试应用程序,应用程序启动,但它在 Safari 中打开 https://google.com
:
我怎么在 Cordova webview 本身中打开 url?
我也尝试过 window.location="https://google.com"
,同样的行为。
从 docs 看来您需要将 target
设置为 _blank
才能在 InAppBrowser
:
cordova.InAppBrowser.open('https://google.com', '_blank');
_self: Opens in the Cordova WebView if the URL is in the white list, otherwise it opens in the InAppBrowser.
_blank: Opens in the InAppBrowser.
_system: Opens in the system's web browser.
我在 config.xml
中遗漏了这个:
<allow-navigation href="*" />
我不知何故错过了 the docs。
By default, navigations only to file:// URLs, are allowed. To allow others URLs, you must add tags to your config.xml: