13

在我的团队中,我们正在开发一个将在平板电脑上播放的应用程序,该项目主要是在 Google Chrome 上开发和测试的。

目前我们在 Apache Cordova 上插入这个 web 应用程序,以便在 Android(以及后来的 iOS 系统)上将其显示为原生应用程序,但该应用程序在平板电脑上显示效果不佳,这是因为 WebKit 版本不同在每个 Android 版本上,并且不像在 Chrome 中那样工作。

问题是...有什么方法可以更改与 Apache Cordova 一起运行的 webkit 版本?(或任何其他网络渲染引擎)

4

3 回答 3

16

目前无法更改 Apache Cordova 使用的 Webkit 版本 - 这是因为 Cordova 使用基于旧 Webkit 版本的原生 Android WebView 组件。原生 Android WebView 正在迅速成为移动世界的 IE 6,如果它还没有的话。

编辑哇!Android 4.4 宣布默认的 WebView 现在将构建在 Chromium 之上!这意味着在 Android 4.4 上运行的 Cordova 应用程序应该运行得更快(新的 JS 引擎)并支持更多的功能(HTML5 的东西)。围绕这个新的 WebView 及其含义仍然存在很多困惑。到目前为止我读过的最好的文章在这里:http ://www.mobilexweb.com/blog/android-4-4-kitkat-browser-chrome-webview

很多人已经意识到这已成为 Cordova 应用程序的一个大问题。已经有一些实验性工作来构建使用 Chromium 源的 WebView 版本(因此是 Webkit 的更新版本(Blink?)),您可以在此处查看代码:https ://github.com/pwnall/chromeview 检查退出“问题”标签并关注它;我每周都会收到几封来自提交问题的人的电子邮件。我认为有些分叉领先于其他分叉,希望它们越来越接近。(根据 Cordova 邮件列表档案,Opera 能够在 2.2 上运行此功能,但我找不到任何代码或其他任何内容,只能通过参考。)

如果您能够使用 Chromium 构建 WebView,那么切换 Cordova 使用的 WebView 类应该不难;我很确定这种能力已经通过这个和类似的提交添加到 Cordova:https ://git-wip-us.apache.org/repos/asf?p=cordova-android.git;a=commit;h= f6049881

我想很多人都屏住呼吸,Android 5.0 最终将有一个使用 Chromium 源的更新 WebView,并将与 Chromium 同步更新......如果是这样,那将是很棒的,但它仍然给我们留下了 4.0而在这之下似乎根本不起作用。

于 2013-09-16T20:01:32.227 回答
9

我建议查看 CrossWalk。它由 Intel 开发,使用 Blink 渲染引擎(与 chrome 相同)。您将它与您的 cordova 应用程序打包,然后您可以在所有设备和 4.0+ 版本上使用相同的 Web 渲染引擎。

https://crosswalk-project.org/

注意:它会为您的应用程序的大小增加大约 20MB,但我想说这对于您在必须进行的跨设备/版本测试中节省您的头痛来说是次要的。

在这里查看以开始使用人行横道和科尔多瓦.. https://github.com/crosswalk-project/crosswalk-website/wiki/Create-Sample-App-With-Crosswalk-Cordova-Android

于 2014-05-14T21:36:10.553 回答
4

随着Apache Cordova Android 4.0.0的发布,它支持“可插入的 WebViews”。

因此,将 Crosswalk 与 Cordova 一起使用只是安装cordova-plugin-crosswalk-webview 的问题。

于 2015-04-22T11:59:33.493 回答