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: