even basic Ionic project with Cordova WKWebview Engine plugin produces white screen
我的问题:
在发现UIWebView是我正在寻找加快速度的罪魁祸首之后,我正在开发的离子应用程序的运行速度非常慢,其中WKWebView是最有前途的解决方案。
我的项目如下所示:
使用当前的Cordova 4.1.0 CLI(例如,使用Ionic 1.2.4)设置示例离子项目(例如,http://ccoenraets.github.io/ionic-tutorial/install-ionic.html)时,UIWebView是用作默认值。但是,自从Cordova 4起,就可以立即使用新的更快的WKWebView,并且可以强制使用,至少在iOS 9中(cordova 4支持WKWebView)。
我使用和配置的插件:
通过
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | </wyn> </p> <p> 到目前为止我尝试过的是: 在终端<wyn>ionic build ios</wyn>中,构建成功,然后在控制台日志中通过OS X El Capitan 10.11.3上的XCode 7.3安装应用程序时,会显示<wyn>Using WKWebView</wyn>消息,但随后在启动屏幕之后,应用程序容器就会消失进入死亡的白屏。删除该插件后,将立即使用UIWebView并且该应用程序将按预期运行。 </p> <p> 替代方法:用集成了本地主机的插件替换原始插件wkwebview-engine-localhost即可。据我了解,WKWebview应该立即由cordova和ionic支持,而不必依赖带有集成服务器的"实验室插件",该服务器是为支持我不需要的iOS 8而开发的。我了解到,与旧版UIWebView相比,WKWebView有很多局限性,尤其是在处理已知问题的<wyn>file://</wyn>语句时,但是可以肯定的是,肯定有人在Ionic + Cordova WKWebView的帮助下工作了,对?必须有更好的方法来实现Web视图的简单速度提高。 </p> <p><center>[wp_ad_camp_2]</center></p><p> 我可能尝试了每种解决方案,配置,插件组合,cordova cli版本降级(支持WKWebView的最低版本为4.0.0),清除缓存以及设备的重置和重新启动,平台的新安装和读取以及cordova,npm的更新等插件,但是除了上面的apache labs插件外,所有插件都没有帮助,或者看起来像是一团糟,没有任何改变。 </p> <p> 通过本地Safari在设备上远程调试ios应用程序时,我可以在元素树中看到body标记保持为空,或者显示了角度元素的简单" ng-view"占位符。我是否正确,通过WKWwebView的cordova处理文件/角度脚本的方式一定存在问题吗? </p> <p> 注意:仅当通过XCode部署到真实设备时(因为<wyn>ionic run ios</wyn>不起作用,但这是另外一回事),该应用程序本身可以在<wyn>ionic serve</wyn>或<wyn>ionic emulate ios</wyn>上正常运行,出现白屏。 </p> <p> 非常感谢任何帮助,因为在我看来,我要么必须使用localhost + wkwebview插件,要么要让用户遭受速度不佳的困扰。 </p> <p> 非常感谢! </p><div class="suo-content">[collapse title=""]<ul><li> 他们什么时候会再见面,史诗般的h-bert?</li></ul>[/collapse]</div><hr> <p><center>[wp_ad_camp_3]</center></p><p> 我有一个与WKWebview一起工作的ionic2项目。我认为我采取的步骤也适用于ionic1: </p> <p> 1)安装WKWebview插件: </p> <p> <wyn>ionic plugin add cordova-plugin-wkwebview-engine</wyn> </p> <p> 2)安装本地网络服务器插件: </p> <p> <wyn>ionic plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugins.git#master:local-webserver</wyn> </p> <p> 3)在您的config.xml中添加/更改以下内容: </p> <p> ... </p> [cc]<content src="http://localhost:8080" /> |
...
1 |
...
1 2 3 4 | <feature name="CDVWKWebViewEngine"> <param name="ios-package" value="CDVWKWebViewEngine" /> </feature> [cc] |
我正在研究使用CrossWalk for IOS,它具有WkWebView的实现。
https://crosswalk-project.org/documentation/ios.html
该项目得到了英特尔的支持,因此背后有坚实的支持。
另一个选择是尝试安装下面由Telerik开发的插件,该插件在WKWebView中交换。
https://github.com/Telerik-Verified-Plugins/WKWebView
科尔多瓦也正在努力通过插件支持WKWebView。对WKWebView的支持非常糟糕。自从iOS7出现以来,它到处都是bug。每个ios版本都在逐步修复。
希望iOS 10有所改进。