我一直在使用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的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 *">
这对我来说也没有帮助。任何可能知道原因是什么的人都会有很大的帮助。我觉得自己最终会遇到这个错误,希望能够解决这个问题,但是要知道为什么会发生这种情况,以及将来要避免这种情况。
提前致谢!
答案 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中的此标记。