地理触发程序在后台启动科尔多瓦应用程序后,该应用程序停留在初始屏幕上

时间:2018-07-09 14:28:50

标签: ios cordova splash-screen wkwebview tls1.2

我正在使用离子( 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="*" />

0 个答案:

没有答案