最近项目需要实现夜间模式,因为是老项目,所以原生的界面找了个优秀的第三方库DKNightVersion ,对于老项目来说很实用,具体的实现方法百度一下很多,这里我主要说下webview的夜间模式的实现。
第一种方式也是很普遍的方式,直接通过更改webview中执行js文件更改body的颜色

对于普通的H5界面 这个方法是没问题的,可以正常修改颜色,但是对于微博和梨视频,等H5界面并不能完全改变,首先想到的是让我们web前端去找到每个标签进行修改,但是工作量巨大,可执行性太差。然后,通过安卓的同事,找到以下的解决方法。
1.首先需要个css文件,里面配置了我们夜间模式的一些参数,大都是颜色之类的。
2.读取本地css文件

这个并没结束,很大的坑,这里的字符串是进行了UTF8编码,但是真正需要的是base64编码的字符串,所以还要进行base64编码,不然的话设置无效

3.对本地文件和js进行拼接

4.然后在didload里注入

至此完成。希望能帮到需要的朋友。另附css文件css文件地址
网友评论