当前位置: 首页 > news >正文

webview 设置夜间模式

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

   前文提到webview页面设置夜间模式,当页面是自家h5写的时候,可以通过js 与原生交互、约定url参数等方式实现,但当加载的页面是第三方的页面时,前面的方法则不能实现,开始想到的方法是在webview 上加一个50%透明度的遮罩层,效果也还过得去,但发现今日头条相同的第三方文章居然也可以实现背景灰黑的夜间模式,于是通过研究发现可通过以下方式实现:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    webView.evaluateJavascript("document.body.style.backgroundColor=\"#222222\";document.getElementsByTagName('body')[0].style.webkitTextFillColor= '#8a8a8a';", null);
} else {
    webView.loadUrl("javascript:document.body.style.backgroundColor=\"#222222\";document.getElementsByTagName('body')[0].style.webkitTextFillColor= '#8a8a8a';");
}

 

backgroundColor:背景色

webkitTextFillColor:字体颜色

 

evaluateJavascript  4.4之后新增的用于执行Javascript的api,用webView.loadUrl方式,只能单向的调用js,当js有返回值时,利用前者就无法实现,但evaluateJavascript可以实现

如:

<script type="text/javascript">
function getMusicStatus(){
   return "1";
   }
</script>

 

webView.evaluateJavascript("getMusicStatus()", new ValueCallback<String>() {
            @Override
            public void onReceiveValue(String value) {
                Toast.makeText(MainActivity.this, "返回值"+value, Toast.LENGTH_SHORT).show();
            }
        });

转载于:https://my.oschina.net/u/3729392/blog/1605369

相关文章:

  • 004 Ubuntu上安装truffle
  • 2.windows下安装git
  • 【Java】List转化为数组
  • HyperLedger Fabric ChainCode开发——shim.ChaincodeStubInterface用法
  • python之元组
  • lsyncd实时同步搭建指南——取代rsync+inotify
  • 互相牵制的能力
  • 正则介绍_grep
  • J2EE
  • 编写按键驱动以及在framework层上报按键事件
  • sed工具
  • 【.Net边角料系列】1-单例模式(我真不是你想的那样)
  • 【CodeForces】713 C. Sonya and Problem Wihtout a Legend
  • Python处理CSV,Excel,PDF和图片
  • 如何保障研发质量不踩坑?阿里技术专家教你几招
  • android图片蒙层
  • C++类中的特殊成员函数
  • Docker入门(二) - Dockerfile
  • HashMap ConcurrentHashMap
  • iOS 系统授权开发
  • JavaScript HTML DOM
  • java中具有继承关系的类及其对象初始化顺序
  • laravel5.5 视图共享数据
  • MaxCompute访问TableStore(OTS) 数据
  • node-glob通配符
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • SpiderData 2019年2月23日 DApp数据排行榜
  • vue 个人积累(使用工具,组件)
  • Vue 动态创建 component
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 数据可视化之 Sankey 桑基图的实现
  • 主流的CSS水平和垂直居中技术大全
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • Java性能优化之JVM GC(垃圾回收机制)
  • puppet连载22:define用法
  • ###C语言程序设计-----C语言学习(6)#
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (二)斐波那契Fabonacci函数
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • .axf 转化 .bin文件 的方法
  • .bat批处理出现中文乱码的情况
  • .net core使用ef 6
  • .NET Framework与.NET Framework SDK有什么不同?
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .py文件应该怎样打开?
  • @Autowired @Resource @Qualifier的区别
  • @font-face 用字体画图标
  • @Mapper作用
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [2016.7.Test1] T1 三进制异或
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——