2017-09-13 748 views
2

我有一个使用Crosswalk的混合Android应用程序。几个月前,我改用了Crosswalk,这是一个巨大的生产力提升。我花了很多时间在不同的Android操作系统版本上进行测试,并且在不完整的HTML5/CSS3/ES6实现中遇到的问题少得多 - 如果我理解正确,因为Crosswalk基于Chromium,而早期版本的Android则不适用。Android v 5.0+ webview HTML5,CSS3和ES6兼容

但是,人行横道项目现在已被放弃。我的理解是,Android中原生Webview的post v 5.0实现非常适合Crosswalk的过时。

我现在正在考虑下降Crosswalk - 基于我的目标市场(西欧)Android v 5.0市场份额在单位数字并且下降很快的观察。

在我冒险之前,我想我应该问这里。 Android v 5.0+ WebView是否为HTML5,ES6和CSS3提供了一个真正平坦的Chrome级API?或者,我仍然可能遇到由各种设备供应商对操作系统进行“调整”而导致性能下降的未实现功能问题?

举几个具体问题

  • 我能想到的全套CSS3伪选择的被支持
  • 我可以假设,我可以放心地不使用-webkit样式的供应商合作前缀
  • 威尔我可以写JS代码,使用Object.keys和其他更新的角色到JS稳定

我一直无法找到一个公司根据版本对全套Webview功能进行全面讨论。我非常感谢这方面的任何反馈。


因为我张贴了这个问题,我已经有滴人行横道试验和测试,我的摩托E3Power手机上运行的Android 6.所有意图和目的,预期该应用程序仍然工作只是结果。但是,这远远不是一个严格的测试。我正在对这个问题进行奖励,希望它能产生一些明确的答案。


现在已经测试了我的非Crosswalk构建在两个设备上,我遇到了一个直接的问题。我做的一件事是修改cssText。例如

document.getElementById('id').style.cssText = 
";transform:rotate(45deg) translate(calc(1024px - 1.35em)) rotate(-45deg);" 

这在我的Android 6.0摩托完美的作品,并提供预期的结果:

  • #id旋转45度
  • 滑出沿着它,旋转,X轴
  • 终于旋转返回-45度

令人惊讶的是在HTC Hero上运行droid 7.0这不起作用。虽然它没有任何意义,我甚至在添加-webkit-前缀后尝试了。在这两款设备上,我都将Webview升级到Play Store上的最新版本。

+0

退房caniuse.com –

+0

的Android 5+的WebView是基于铬,并通过Play商店更新。您可以检查安装在您自己的设备上的'Android System WebView'软件包的版本,并查看其版本对应于最近发布的铬版本。 ///由于您没有将其捆绑到应用程序中(例如Crosswalk),因此不同的设备有不同的版本,您可能会遇到HTML应用程序中的兼容性问题。 ///您可以随时在运行时检查安装的版本并提示用户更新其WebView实现。 –

+0

为了完整:除了KitKat之外,Android WebView根本不基于Chrome。 KitKat WebView基于Chrome 33,无法更新。看到这里:https://developer.chrome.com/multidevice/webview/overview –

回答

0

我想你可以尝试:

if (Build.VERSION.SDK_INT >= 19) { 
    webView.setLayerType(View.LAYER_TYPE_HARDWARE, null); 
}  
else { 
    webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
} 

安卓19具有铬引擎的WebView。我想它在硬件加速方面效果更好。硬件加速也有诀窍。您可以在应用程序的不同级别使用它。

应用水平

<application android:hardwareAccelerated="true" ...> 

活动水平

<application android:hardwareAccelerated="true"> 
    <activity ... /> 
    <activity android:hardwareAccelerated="false" /> 
</application> 
+1

我其实没有得到我等待的权威答案。但是,我开始怀疑自己某些手机上缺少的动画是一个硬件加速问题,所以到目前为止,您已经提供了我已经决定接受的最有用的答案。 – DroidOS

+0

我也遭受与本机应用程序相同的情况。我尝试了很多措施,最后这个措施是我所知道的最好的。 Android上的WebView在功能和速度方面都非常失败。我还没有发现任何人可以在android中更好地定制。如果你知道请为我介绍!感谢赏金。 –

1

网页视图现在它不与操作系统集成的,但它可以从Play商店更新一个独立的应用程序,是的,它支持CSS3和所有, 它不是铬,但是共享相同的代码与铬

渲染

不,Chrome for Android与WebView是分开的。它们都基于相同的代码,包括常见的JavaScript引擎和渲染引擎。

https://developer.chrome.com/multidevice/webview/overview

如果你大部分的用户设备的说是+5你应该罚款。

  1. WebGL的
  2. 的WebRTC
  3. WebAudio
  4. 表单验证

下面是适用的WebView https://developer.chrome.com/multidevice/webview/overview#does_the_new_webview_have_feature_parity_with_chrome_for_android_

也为Android> 7.0浏览器本身是web视图的功能。

+0

我不觉得你的答案充分我的问题。您上面提到的链接是众所周知的,并且以非常通用的术语谈论+5 webview支持的网络技术。我提到了一些非常具体的观点,比如支持CSS3伪选择器,ES6特性等。自从我放弃了Crosswalk之后,我遇到了一些非常奇怪的问题,我现在在我的问题中提到了这些问题。 – DroidOS