57

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

背景

我们应用程序的重要部分包括嵌入在视图中的网页片段(由应用程序本身提供)。我们尝试尽可能透明地做到这一点(从视觉/用户体验的角度来看)。到目前为止,我们一直在为此使用WebView,并且大部分情况下都有效。除非它没有。

不幸的是,一些手机供应商决定在这里和那里调整标准的 Android 浏览器。在某些情况下,这会破坏我们的应用程序或使我们嵌入网页的事实更加明显。

我们的理念

我们希望有一个类似于WebView的组件,但我们在其中控制正在使用的 Webkit/Chromium(或其他一些渲染引擎)版本。它不一定是最新最好的版本。更重要的是,我们可以让我们的应用程序在尽可能多的 Android 设备上始终如一地工作。

至今

到目前为止,我们的研究还没有发现任何有用的东西。我们发现了 3 次将 Webkit 移植到NDK的失败尝试(用于 Android 端口的裸 Webkit 使用了 NDK 中不可用的功能,因此不适用于应用程序开发人员):

在StackOverflow上看,我们也发现了很多类似的问题,大部分都是通过指向WebView来解决的(我们已经这样做了,还不够好)

我们目前正在研究是否可以将Chromium for Android(或其中的一部分)转换为我们的应用程序可以使用的库。有没有其他人这样做过?

更新

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

4

6 回答 6

13

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

ChromeView 的工作方式类似于 Android 的 WebView,但由最新的 Chromium 代码支持。

于 2013-06-05T01:27:28.110 回答
10

你们都应该看看 Crosswalk 项目。由英特尔赞助,并正在积极开发中。他们提取了 Chromium 资源并承诺在 6 周内在 Crosswalk 中提供所有新的 Chromium 功能。

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

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

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

https://crosswalk-project.org

于 2014-08-13T18:39:24.330 回答
4

没有 WebKit 就会有GeckoView。当然,它为项目添加了超过 20Mb 的库。

于 2013-12-06T16:01:37.090 回答
3

如今,GeckoView 似乎是一个可以考虑的替代方案

于 2019-02-19T12:56:40.820 回答
2

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

我将给出我的方法,但现在不给出源代码。

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

下面是我的方法:

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

于 2015-10-17T15:29:01.500 回答
0

我会考虑 Chrome 自定义标签:

https://developer.chrome.com/multidevice/android/customtabs

于 2015-09-28T08:36:41.087 回答