即使是使用Cordova WKWebview Engine插件的基本Ionic项目也能生成白屏

haj*_*ajn 10 uiwebview ios cordova ionic-framework wkwebview

我的问题: 我正在开发的离子应用程序非常慢,在发现UIWebView是罪魁祸首后,我正在寻找加速它的方法,WKWebView是最有前途的解决方案.

我的项目是什么样的:使用当前的Cordova 4.1.0 CLI 设置示例离子项目(例如http://ccoenraets.github.io/ionic-tutorial/install-ionic.html)(我正在使用Ionic 1.2.4)UIWebView用作默认值.然而,由于科尔多瓦4,新和更快WKWebView被支撑外的现成和可以强制,至少在IOS 9(科尔多瓦4支持WKWebView).

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

<feature name="CDVWKWebViewEngine"> <param name="ios-package" value="CDVWKWebViewEngine" /> </feature> <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

到目前为止我尝试了: 在终端中ionic build ios,然后构建成功,并且在OS X El Capitan 10.11.3上通过XCode 7.3在控制台日志中安装应用程序时Using WKWebView打印消息,但是在启动屏幕之后,应用程序容器会消失进入死亡的白色屏幕.一旦我删除该插件,就会使用UIWebView并且应用程序按预期工作.

替代方案:将原始插件wkwebview-engine-localhost替换为具有集成localhost的插件,可以正常工作.据我所知,WKWebview应该得到cordova和ionic的支持,而不必依赖一些带有集成服务器的"labs插件",该服务器是为了支持我不需要的iOS 8而开发的.据我所知,与旧的UIWebView相比,WKWebView有一些限制,特别是在处理file://语句已知问题时,但肯定有人在那里让Ionic + Cordova WKWebView工作没有我所有的麻烦,对吧?必须有更好的方法来实现webview的简单速度改进.

我尝试了每个解决方案,配置,插件组合,cordova cli版本降级(WKWebView支持最低为4.0.0),清除缓存,重置和重启我的设备,新安装和平台读取以及更新cordova,npm,各种插件,但除了上面的apache labs插件之外,所有这些都没有任何帮助,或者看起来像一个巨大的混乱,没有改变任何东西.

当远程调试通过我的本地的Safari设备上的应用程式的IOS,我可以在元素树看到,该机构停留标签或者为空,或简单的"NG-视图"占位符的角元件被示出.我是否正确通过WKWwebView处理它的方式检索文件/角度脚本一定存在问题?

注意:应用程序本身工作正常,ionic serve或者ionic emulate ios,只有在通过XCode部署到真实设备时(因为ionic run ios不起作用,但这是一个不同的故事),白色屏幕出现.

任何帮助都非常感谢,因为在我看来,我必须使用localhost + wkwebview插件或让用户遭受速度不佳.

非常感谢!

fla*_*ave 9

我有一个与WKWebview合作的ionic2项目.我认为我采取的步骤也适用于ionic1:

1)安装WKWebview插件:

ionic plugin add cordova-plugin-wkwebview-engine

2)安装本地webserver插件:

ionic plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugins.git#master:local-webserver

3)在config.xml中添加/更改以下内容:

...

<content src="http://localhost:8080" />
Run Code Online (Sandbox Code Playgroud)

...

<allow-navigation href="gap://ready" />
<allow-navigation href="http://localhost:*" />
Run Code Online (Sandbox Code Playgroud)

...

<feature name="CDVWKWebViewEngine">
    <param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
Run Code Online (Sandbox Code Playgroud)

  • 离子插件添加 https://git-wip-us.apache.org/repos/asf/cordova-plugins.git#master:local-webserver :: 不工作,错误:无法获取插件 https://git-通过 git wip-us.apache.org/repos/asf/cordova-plugins.git。要么存在连接问题,要么插件规范不正确:找不到插件“local-webserver”的 plugin.xml。请尝试重新添加。 (2认同)

TWi*_*lly 1

我正在考虑在 IOS 上使用 CrossWalk,它具有 WkWebView 的实现工作。

https://crosswalk-project.org/documentation/ios.html

该项目得到了英特尔的支持,因此其背后有坚实的支持。

另一种选择是尝试安装由 Telerik 开发的以下插件,该插件可在 WKWebView 中进行交换。

https://github.com/Telerik-Verified-Plugins/WKWebView

Cordova 也开始通过插件支持 WKWebView。对 WKWebView 的支持很糟糕。自从 iOS7 发布以来,它就充满了错误。每个 ios 版本都会慢慢修复这个问题。

希望iOS 10能够做出一些改进。