在Android应用程序中embeddedChromium或Webkit

对于我们的Android应用程序,我们想embedded我们自己的浏览器/渲染引擎。 Webkit / Chromium是最有可能的select。 我们正在寻找类似于WebView的东西,本质上是,但是由我们控制的浏览器(版本)支持。

背景

我们的应用程序的重要组成部分包括视图中embedded的网页片段(由应用程序本身提供)。 我们尽可能透明地做到这一点(从视觉/用户体验的angular度来看)。 到目前为止,我们一直在使用WebView来实现这个function,而且这个function在很大程度上起作用 除非没有。

一些手机厂商不幸地决定调整标准的Android浏览器在这里和那里。 在某些情况下,这会打破我们的应用程序,或者使得我们embedded一个更明显的网页。

我们的想法

我们希望有一个类似于WebView的组件,但是我们可以控制使用什么版本的Webkit / Chromium(或其他渲染引擎)。 这不一定是最新和最好的版本。 更重要的是,我们可以让我们的应用程序在尽可能多的Android设备上保持一致

至今

迄今为止我们的研究还没有发现任何有用的东西。 我们已经发现了三次将Webkit移植到NDK的尝试(Android版裸露的Webkit端口使用了NDK中不具备的function,因此不适用于应用程序开发人员):

  • 公司100的Webkit Android端口 (两年以上没有更新)
  • mogo浏览器 (他们的最后一次修改是删除所有的源代码)
  • NDK Webkit (由其作者正式放弃)

看着StackOverflow,我们也发现了一些类似的问题,其中大部分是通过指向WebView来解决的(我们已经这样做了,而且还不够好)

  • Android的Webkit组件
  • 在我的应用程序中embedded基本的WebKit + V8
  • 使用Android应用程序embedded更新版本的WebKit

我们目前正在调查Android的Chromium (或其中的一部分)是否可以变成我们的应用程序可以使用的库。 有没有其他人做到这一点?

更新

看看GitHub上的chromeview项目(已接受的答案)后,我们决定等待Google在未来的Android设备上发布基于Chrome的WebView。 Chromium渲染引擎变得相当大(〜40MB),这不会为实际的应用程序留下太多的空间:(

pwnall / chromeview·GitHub https://github.com/pwnall/chromeview

ChormeView像Android的WebView一样工作,但由最新的Chromium代码支持。

你应该都看看人行横道项目。 由英特尔赞助,并积极开发。 他们拉动Chromium来源,并承诺在6周内在Crosswalk提供所有新的Chromiumfunction。

Crosswalk是一个雄心勃勃的HTML5应用程序的Web运行时。 它提供了现代浏览器的所有function,并结合深层设备集成和用于添加本机扩展的API。 它特别适合移动设备。

Crosswalk在ARM和Intel架构上支持Android 4.0及更高版本。

在一个小时内find这个项目,我的Cordova / Phonegap应用程序运行在带有Crosswalk的Android手机上。 我很高兴我不必调整我的Javascript代码,以尊重(4.4前)android.webkit.WebView的缺点。

https://crosswalk-project.org

没有WebKit有一个GeckoView 。 当然,它为这个项目增加了20Mb的库存。

我试图使用最新的Chromium代码版本来构build自定义的WebView,并且它是成功的。

我现在要给我的方法,但不是在这里的源代码。

最终,自定义WebView库的大小约为30MB,对于一些小应用来说相当大。 但是这很棒,因为可以从Android 4.0完美支持。

以下是我的方法:

我稍后会更新我的代码,但是如果不想等待,可以尝试我的指南。