手机浏览器内核不同以及手机系统版本不同让webview在使用上面对于html标签css等可能会出现不同的效果。
首先说一下我为什么要写这一篇,因为我就是踩着这个屎坑过来的,由于需求问题,我需要做一个富文本编辑器,这个富文本编辑器最终出来的内容要兼容ios以及web,效果要一致,所以选择用html标签作为富文本显示,而我使用的是github上面开源的RichEditor,地址是:https://github.com/wasabeef/richeditor-android
我使用的时候出现一堆的坑,具体有多少坑我就不列举了,兼职不忍直视,会有一堆的bug问题,主要是由于android这边的浏览器内核跟版本新旧的问题,这简直让我绝望,我找了谷歌跟度娘,查了一堆资料,最终发现一个东西:Crosswalk,具体它的作用,可以看官方里面那吹牛式的介绍,这里也有一篇介绍:http://www.csdn.net/article/2014-09-15/2821693-Crosswalk
注:写这一篇文章时,crosswalk版本已经20.*+了。
好了,首先不说富文本编辑器,先说如何使用crosswalk替换webview,非常简单,先上crosswalk的官网,然后下载自己所需要的jar包跟so库,我在官网上找的相当蛋疼,这里有个crosswalk的仓库地址:https://download.01.org/crosswalk/releases/crosswalk/android/maven2/ 需要什么版本,自己上去下载,然后作为模块或者直接放到项目里面都行,如何引入jar包跟so库,不详细说。
如何使用,首先最权威的当然是看人家的官方文档https://crosswalk-project.org/apis/embeddingapidocs_v6/index.html
但是看起来太费时间,我就不去讲解使用了,没事,总是会有古人为你铺好路,请看这里的快速上手:https://www.mobibrw.com/2015/1934
接下来是富文本编辑器了,你可以试试去github上面下载RichEditor然后去多部手机上使用看看,你就知道,你是多么需要我这么一篇文章,简书大概也是用的这个,因为它出现的一些问题跟我一样....。
对于富文本编辑的坑,太多了,我懒的写,请看这里
http://www.cnblogs.com/linguanh/p/4953328.html?utm_source=tuicool&utm_medium=referral
里面大概总结了一些坑,还有很多坑是没写出来的,因为他里面重点写的是使用了crosswalk作为webview的引擎之后的一些问题的解决方法。
还有一些问题,比如:
Crosswalk 9.38.208.10 和 10.39.235.15 在MX3 flyme3.5.2 编辑html的时候点击会崩溃。
Crosswalk 17.*+以上的所有支持了x64位cpu的版本在编辑html的时候也有一堆的问题。
Crosswalk 8.37.189.12在各已知手机上编辑表现正常,已上传Github --> 代码库地址。
我试过了几乎所有的8.*以上版本,确实唯一正常的就是8.*这个版本,但是8.*版本并不支持x64位的cpu,如果你的项目里面本身没有arm64-v8a、mips64、x86_64这三个文件夹,那可能没问题。因为手机在查找so文件的时候,如果手机是64位cpu,它会找arm64的文件里面的so库,如果没有的话,会报找不到so文件异常,如果没有的话,会找armeabi文件里面的,所以在打包到时候有这三个文件夹,要把你的apk文件后缀改成压缩文件,然后进入lib目录,把这三个文件夹删了。
tip:还有可以使用腾讯x5引擎试试看http://x5.tencent.com/doc?id=1004