Android设备上使用WebView的所有应用程序是否在运行时加载相同版本的Webkit?

时间:2013-12-05 03:56:07

标签: android webview webkit

我遇到的情况是我在同一个Android设备上使用嵌入式WebViews在多个第三方应用程序中测试3D CSS变换,但在某些应用程序中它们呈现平坦,就好像它们将在旧版本中运行一样Webkit尚未支持3d转换。

有人能告诉我使用较旧的SDK编译的应用程序是否实际加载旧版本的Webkit,即使它们运行在具有最新版Android的设备上?如果是这样,是否可以通过检查apk文件确定版本?

2 个答案:

答案 0 :(得分:0)

据我所知,WebView小部件应该在系统范围内相同。我可以想到观察到的差异的三个可能原因:

  1. 某些应用可能捆绑了非标准的WebView(显然是Chrome,Firefox,并且这样做)。还有一些基于Chromium的开源库,例如ChromeViewChromiumWebView。任何使用其中一个的应用都可能有不同的行为。

  2. 即使使用标准WebView,也可以通过WebSettings类以不同方式配置它(例如切换JavaScript,地理定位,插件,数据库存储和& c)。显示的网页的行为可能会受到这些标志的影响。

  3. 最后,在框架的某些部分中运行针对较早版本的Android does add some "compatibility shims"的应用程序。

  4.   

    随着Android每个新版本的发展,一些行为甚至是   外表可能会改变。但是,如果平台的API级别是   高于你的应用程序的targetSdkVersion声明的版本,   系统可以启用兼容性行为以确保您的应用程序   继续以你期望的方式工作。

    documentation of Build.VERSION_CODES中列出了一些兼容性更改(其中某些目标WebView)。

答案 1 :(得分:-1)

另一种了解不同Android版本的webview版本差异的方法是在应用程序中添加一个webview渲染引擎。

查看此https://github.com/mogoweb/chromium_webview了解更多信息。