在我的团队中,我们正在开发一个将在平板电脑上播放的应用程序,该项目已在Google Chrome上进行了大量开发和测试。
目前我们在Apache Cordova上插入此webapp,以便在Android(以及后来的iOS)上将其显示为本机应用程序,但该应用程序在平板电脑上显示不佳,这是因为WebKit版本,每个Android版本都有所不同,但在Chrome中不起作用。
问题是......有没有办法改变使用Apache Cordova运行的webkit版本? (或任何其他Web呈现引擎)
答案 0 :(得分:15)
目前无法更改Apache Cordova使用的Webkit版本 - 这是因为Cordova使用基于旧Webkit版本的原生Android WebView组件。原生Android WebView很快就会成为移动世界的IE 6,如果还没有的话。
编辑 WHOOO! 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及以下版本似乎根本不起作用。
答案 1 :(得分: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
答案 2 :(得分:4)
随着Apache Cordova Android 4.0.0的发布,它支持“可插入的WebViews”。
因此,使用Crosswalk和Cordova只需要安装cordova-plugin-crosswalk-webview。