iOS上的Ionic InAppBrowser加载白色空白屏幕错误

时间:2018-06-05 01:45:23

标签: ios cordova ionic-framework phonegap inappbrowser

我一直在使用InAppBrowser一段时间,之前没有遇到过这个问题。它正在加载我的网址,现在似乎不想这样做。

首先,我已正确导入InAppBroswer,它在Android上100%正常运行。这是仅限iOS的问题。

在我的config.xml中:

<access origin="https://www.mydomain.or/*" />
<allow-intent href="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<!-- Call to Plugins -->
<plugin name="cordova-plugin-whitelist" spec="1.3.3" />
<plugin name="cordova-plugin-device" spec="2.0.2" />
<plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
<plugin name="cordova-plugin-ionic-keyboard" spec="2.0.5" />
<plugin name="cordova-plugin-inappbrowser" spec="^3.0.0" />
<plugin name="cordova-plugin-statusbar" spec="^2.4.2" />
<plugin name="cordova-plugin-app-update" spec="^1.6.0" />
<plugin name="cordova-plugin-app-version" spec="^0.1.9" />
<engine name="android" spec="~7.0.0" />
<engine name="ios" spec="~4.5.4" />

我的插件似乎运行正常,没有lint或编译错误。

我按照他们的文档调用浏览器:

//construct the instance of browser we are using to launch with Ionic Native
const browser = this.iab.create('https://www.mydomain.or', '_blank','location=no');
//If Browser is Hidden Display
browser.show();

在WKWebView的控制台中根本没有报告任何错误,但我在模拟器和设备上都得到了以下图像。 iOS Error

尝试解决此问题的步骤如下: 使用iOS的Securty Steps,将WhiteList添加到插件中 - 请参阅上面的插件列表。 我已将检查添加到plist文件中:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>localhost</key>
    <dict>
      <key>NSExceptionAllowsInsecureHTTPLoads</key>
      <true/>
    </dict>
    <key>www.mydomain.or</key>
    <dict/>
  </dict>
</dict>

众所周知,这有助于解决过去的类似问题。 我还为我的索引添加了一个元标记,因为这也是过去帮助其他人的东西:

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; style-src 'self’; connect-src https://www.mydomain.or; script-src 'self’; media-src *">

这对我来说也没有帮助。任何可能知道原因是什么的人都会有很大的帮助。我觉得自己最终会遇到这个错误,希望能够解决这个问题,但是要知道为什么会发生这种情况,以及将来要避免这种情况。

提前致谢!

2 个答案:

答案 0 :(得分:0)

直到最近,我一直在努力解决这个问题。

config.xml

bool

这个标签似乎解决了这个问题。

--- 更新 -

<强> info.plist中

    <allow-navigation href="*" />

答案 1 :(得分:0)

解决 我能够通过添加:

来解决这个问题
<meta http-equiv="Content-Security-Policy" content="default-src gap://ready file://* *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' *”>

这会添加到index.html文件的标头中。 我的上述问题显然存在一些语法错误,但在构建到Android或iOS时不会调用错误。

但是,您可以添加一个构建工具来编写脚本以检查index.html中的此标记。