WebView兼容性一直以来都是Android开发的一大问题,随着系统版本升级自带的WebView也在更新,尤其是Android 4.4使用了Chromium替代Webkit作为WebView内核,再加上第三方ROM可能对原生WebView有做修改,导致了很多兼容性问题。在云助理对“云课堂”进行支持的过程中更加暴露出兼容性问题造成的影响(视频无法播放等)。
各个手机WebView版本不同、内核也会不同,兼容性问题没法完全解决。怎么办?不用自带WebView,App自己提供内嵌浏览器!你看微信也是使用自家的内核~

优点
缺点
注意事项
预加载
由于XwalkView内存占用较大,第一次加载会比较耗时,为避免打开网页时延迟过久,在应用启动时加载new XWalkView(activity, activity)即可。
系统限制
由于只使用了支持arm架构的Crosswalk,且Crosswalk要求4.0以上系统,运行时需要加以判断,符合要求才使用XwalkView,否则使用自带的WebView。
public static boolean isCrosswalkSupport() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH
&& (android.os.Build.CPU_ABI.startsWith("armeabi-v7a")
|| android.os.Build.CPU_ABI.startsWith("arm64-v8a"));
}
允许文件下载
默认不允许文件下载,即点击下载链接无效,需要调用XwalkView.setDownloadListener(XWalkDownloadListener)。
允许文件上传
默认不允许文件上传,需要实现XWalkUIClient的openFileChooser(XWalkView view, ValueCallback<Uri> uploadFile, String acceptType, String capture)方法,调用系统文件选择器。