关于ios:使用Cordova WKWebview Engine插件甚至是基本的Ionic项目都会产生白屏

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)。

我使用和配置的插件:
通过cordova plugin add cordova-plugin-wkwebview-engine添加了对iOS平台的支持(目前为9.3)。添加此插件并在config.xml中正确配置时

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有所改进。