Android中使用webview展示html

问题积累之用

年前赶一个项目,碰到的这种问题,需要展示html文件,首先想到的就是webview控件,只可惜之前开发的过程中很少用到这种技术,接手这个模块也算一个挑战。

先去google上查了一下常见webview展示本地html文件的方式,直接给的是一个android上特有的路径方式 webYingji.loadUrl("file:///android_asset/photo1/index_index.html");

通过这种方式的调用可以直接满足我的一个预览功能,欣慰中,想想要是制作一个文件是不是只要只要替换下其中的资源即可,便立即开干,弄了半天也没完成图片的拷贝,遂继续google,才发现项目中assets文件夹的权限是只读,不能写。百折不挠的我只能寻找一些其他方式去完成写入功能,也发现了一些先驱者的奋斗,可通过调用jni完成,考虑到时间已经IQ,短时间也未必能够习得此功夫,只可作罢。

可是此功能可是app中的一大亮点,怎能作罢,参考了一下前端html的展示方式,我很高兴,甚至得瑟的想到了一个好方法,将文件拷贝出来不就好了么,于是开始着手去code这段代码,着实要求对file类、java IO流有很高的要求啊,花了将近一个小时完成了这个功能,立马跑了一下看看效果,只见那个loading动画持续了6~7秒,心情瞬间low了下来,要是这功能给客户用,估计都想砍人了。罢了罢了,先让我把功能开发出来先,于是又完成了一个制作替换文件的功能,waht the fuck!!!从拷贝到加载出来,基本维持在12~15秒之间。这样的用户体验绝对是不行的,虽说我把功能给弄出来了。还是有点儿小happy,终于有个交代了啊。于是立马向产品“邀功”,不过也附带了一句,慢了点儿,诶谁让时间这么紧呢。当看到IOS的那加载速度的时候,瞬间被打脸了,擦擦擦  速度完全秒杀我啊,是可忍孰不可忍啊,虽说机器性能的确存在差异性,这也不能差太多啊。原来那货给照片做了一下压缩,难怪比我的模糊许多,考虑到用户体验,产品说那就压缩吧。一句话的事儿,哥可就得忙个半天啊,因为还要拷贝呢!!!

回去以后我上官网查了下webview的API,不得不说,公司google还是我找了一个镜像网站上的,官网可就没那么好上了,发现了还有一种方式,跟同事一交流,tm还真可行啊,怀着激动的心情,久久不能入睡啊,webYingji.loadData(content, "text/html;charset=UTF-8", null);我就大体记录个方法咯

第二天早早的就来了,尝试新方法,还别说  就单单预览的速度提升很快,可是制作的还是问题多多啊,在同事的提醒下,html中的引用资源都得改成绝对路径才行,于是就有了file:///android_asset/photo2/style/main.css这种路径,这样一来之前笨重的copy文件也省去了,速度提升一倍都不止啊。然后在把图片进行压缩一下,我又飘了起来,哈哈,大功告成呢。这次没有去邀功,因为怕在被打脸,只能安静的享受,突然测试提出来说,怎么还是出不来啊 ,我还以为她手机太旧,不支持呢变忽悠了下  你手机不行啊。可是哪有这种说法的,我就又把html文件转换出来的字符串重新写成了一个html,纳尼!!!居然就这么好了,我也是醉了啊。至此,这个功能才算真正完成啊,不免小happy一下,我这几天的加班也不是白费的。


至此重新回想当初着手开发的时候,中途也是发生了一些不太满意的地方,比如直接干,未对使用的技术进行了解,导致花费大量功夫做出来的功能不进入人意,再从头捋清楚了到开发完成,不过也就半天功夫,远低于之前耗时,再次谨记,思考远比蛮干强。至此对webview加载html的使用也算有了个简单了解,希望下次在遇到这个问题时,能充当一个小助手。


你可能感兴趣的:(app开发)