我遇到的情况是我在同一个Android设备上使用嵌入式WebViews在多个第三方应用程序中测试3D CSS变换,但在某些应用程序中它们呈现平坦,就好像它们将在旧版本中运行一样Webkit尚未支持3d转换。
有人能告诉我使用较旧的SDK编译的应用程序是否实际加载旧版本的Webkit,即使它们运行在具有最新版Android的设备上?如果是这样,是否可以通过检查apk文件确定版本?
答案 0 :(得分:0)
据我所知,WebView
小部件应该在系统范围内相同。我可以想到观察到的差异的三个可能原因:
某些应用可能捆绑了非标准的WebView(显然是Chrome,Firefox,并且这样做)。还有一些基于Chromium的开源库,例如ChromeView或ChromiumWebView。任何使用其中一个的应用都可能有不同的行为。
即使使用标准WebView,也可以通过WebSettings
类以不同方式配置它(例如切换JavaScript,地理定位,插件,数据库存储和& c)。显示的网页的行为可能会受到这些标志的影响。
最后,在框架的某些部分中运行针对较早版本的Android does add some "compatibility shims"的应用程序。
随着Android每个新版本的发展,一些行为甚至是 外表可能会改变。但是,如果平台的API级别是 高于你的应用程序的targetSdkVersion声明的版本, 系统可以启用兼容性行为以确保您的应用程序 继续以你期望的方式工作。
documentation of Build.VERSION_CODES中列出了一些兼容性更改(其中某些目标WebView)。
答案 1 :(得分:-1)
另一种了解不同Android版本的webview版本差异的方法是在应用程序中添加一个webview渲染引擎。