我正在使用离子( 3.20.0 )和角度( ionic-angular)开发Cordova iOS应用( cordova-ios 4.5.4 ) ^ 3.9.2 )。
我正在使用最新版本的离子WKWebView( cordova-plugin-ionic-webview ^ 1.2.1 )。我无法使用apache cordova WKWebView,因为我们愿意支持Android。
我的应用通过触发地理围栏来填充本地通知。触发地理围栏后,如果该应用未运行(已终止),则该应用会在操作系统的后台启动。
有时在后台启动应用程序时会出现以下错误,
Error Domain = NSURLErrorDomain代码= -1004“无法连接到 服务器。” UserInfo = {_ kCFStreamErrorCodeKey = 61, NSUnderlyingError = 0x1c0241830 {Error Domain = kCFErrorDomainCFNetwork Code = -1004“(null)” UserInfo = {_ kCFStreamErrorCodeKey = 61, _kCFStreamErrorDomainKey = 1}},NSLocalizedDescription =无法连接到服务器。 _WKRecoveryAttempterErrorKey =, NSErrorFailingURLStringKey = http://localhost:8080/var/containers/Bundle/Application/0E78BB1F-7EAA-4095-8A6D-0CBB232F0E56/XXX.app/www/index.html, NSErrorFailingURLKey = http://localhost:8080/var/containers/Bundle/Application/0E78BB1F-7EAA-4095-8A6D-0CBB232F0E56/XXX.app/www/index.html, _kCFStreamErrorDomainKey = 1}
以下CDVWKWebViewEngine.m
方法出现错误,
- (void)webView:(WKWebView*)theWebView didFailNavigation:(WKNavigation*)navigation withError:(NSError*)error
我为 localhost 例外域添加了应用传输安全设置,
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSExceptionRequiresForwardSecrecy</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSRequiresCertificateTransparency</key>
<false/>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<false/>
<key>NSThirdPartyExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<true/>
</dict>
也已设置,
<key>NSAllowsArbitraryLoads</key>
<true/>
但是仍然出现错误。一旦发生这种情况,通过点击应用程序图标或滑动通知,应用程序将在下次启动应用程序时停留在启动屏幕上。
我需要设置的其他内容。
一些博客说, 配置已启用TLS 1.2协议的服务器。
但是我不确定如何配置离子Cordova WKWebView的本地Web服务器。
任何帮助都将非常感激,因为我坚持了这两个星期。谢谢。
已更新:
我没有在config.xml中添加这些,
<allow-navigation href="http://localhost:8080/*"/>
和
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
我将它们添加到config.xml中,现在构建了ionic ios。但是我已经在config.xml中添加了<allow-navigation href="*" />
。