有需求需要修改 webView 背景颜色

然后上网搜罗一圈大概都是使用webview的setBackgroundColor或者修改透明度,再者就是关闭硬件加速。结果是都不可靠。

然后打算使用注入Js达到想要的效果

代码产考:

 binding.mWebview.getSettings().setJavaScriptEnabled(true);//允许使用JavaScriptString jsStr = "javascript: (function () { if (!document.getElementById('eyeshield_color_css')) { var head = document.getElementsByTagName('HEAD').item(0); var style = document.createElement('style'); style.id = 'eyeshield_color_css'; style.type = 'text/css'; style.innerText = \"*{background-color:" +"#28c8b7"+" !important;}\"; head.appendChild(style); }else{ document.getElementById('eyeshield_color_css').innerText = \"*{background-color:" +"#28c8b7"+" !important;}\"; } })();";webview.loadUrl(jsStr);

这里的Js意思就是把界面上所有的背景都改成 #28c8b7 可多次修改

然后就是注入时机的问题,

首先需要实现webview 的WebViewClient以及WebChromeClient

 binding.mWebview.setWebViewClient(new WebViewClient(){});binding.mWebview.setWebChromeClient(new WebChromeClient(){});

1,在获取到web标题的时候,注入

在WebChromeClient里重写onReceivedTitle,然后执行js

2,在界面有hash跳转的时候,

在WebViewClient重写 doUpdateVisitedHistory,然后执行js

到这里基本已经满足需求了,但是后来发现如果webview  reload的时候,还是会出现背景色改不来的情况,这时候

3,在界面完成后,再次执行js

在WebViewClient重写 onPageFinished,然后执行js

各位兄弟可以根据自己需求修改注入时机

再多一嘴,加个webview黑夜模式的js,注入时机同上

 String jsStr = "javascript:(function() {var parent = document.getElementsByTagName('head').item(0);var style = document.createElement('style');style.type = 'text/css';style.innerHTML=`*,*:before,*:after{box-sizing:inherit;background-color:rgba(32,31,38,0.8) !important;}div,h1,h2,h3,h4,h5,h6,p,body,em,html,link,textarea,form,select,input,span,button,em,menu,aside,table,tr,td,nav,dl,dt,dd,amp-iframe,main{color:#888888!important;border-color:#555555 !important;text-shadow:0 0 0 #000;}a{color:#3c5180 !important;}strong{display:block;}img,video,iframe,canvas,svg,amp-social-share,embed[type='application/x-shockwave-flash'],object[type='application/x-shockwave-flash'],*[style*='url(']{-webkit-filter:opacity(50%);-ms-filter:opacity(50%);filter:opacity(50%);}`;parent.appendChild(style)})();";binding.mWebview.loadUrl(jsStr);

webView 修改背景颜色相关推荐

  1. linux下面安装Matlab2017b、快捷键修改、修改背景颜色(转载+自己整理)

    环境: Ubuntu 18.10 Matlab2017b 下载地址: 链接: https://pan.baidu.com/s/1wLBTp7zXPiK8Y-vJZ6Vzhg 密码: 6w8c 别担心速 ...

  2. IntelliJ IDEA如何修改背景颜色样式

    如果您之前使用的是eclipse,当您切换到 IntelliJ IDEA后,设置上会有一些差异,如果您需要修改 IntelliJ IDEA编辑器的背景,那么这些内容可能可以帮助到您. IntelliJ ...

  3. idea修改背景颜色

    Idea修改背景颜色 File-->settings-->Editor目录下: 点击Backgroud后面的颜色区域,弹出如下框: 把色值调成如图中数值点击choose保存推出即可.

  4. PDF文件如何修改背景颜色,PDF文件怎么改部分底色

    正常的使用的PDF文件是没有底色的,是白色的,有时候白色的看着很显单调,有时候改变一下顶部的背景颜色,看起来也舒服不少.那么我们如何在PDF文件修改适合的背景颜色呢?想知道的小伙伴们就跟小编一起来看看 ...

  5. matplotlib修改背景颜色和插入背景图片

    文章目录 matplotlib怎么修改背景颜色? 1.通过matplotlib的相关参数修改 2.插入背景图片 matplotlib怎么修改背景颜色? 1.通过matplotlib的相关参数修改 使用 ...

  6. CAD图纸该如何修改背景颜色呢?

    1.启动运行CAD编辑器专 业版,点 击菜单栏中[定制工具]-[选项]选项卡,会弹出的[选项]弹窗. 2.在弹出的[选项]弹窗中,我们切换到[显示]页面,选择[可选颜色]选项图标. 3.这时会弹出[图 ...

  7. PLSQL developer14/PLSQL14如何修改字体和文字大小,如何修改背景颜色?

    PLSQL developer14/PLSQL14如何修改字体和文字大小,如何修改背景颜色? 不解释,直接上图.

  8. CAD图纸转换TIFF格式时修改背景颜色

    接触CAD相关工作的小伙伴,常常会对CAD图纸进行格式转换,CAD图纸转换图片格式就是较为常见的,这其中就有CAD图纸转换成TIFF图片格式.而CAD图纸转换TIFF图片格式的时候,可能需要修改背景颜 ...

  9. INTERLLij IDEA 修改背景颜色护眼

    IDEA的默认颜色为黑色,确实很酷,第一眼就被它的界面所惊艳到了! 不过软件的默认字体太小,对于我这个有着500多度近视的人来说简直痛苦,特地整理了一些修改背景颜色的方法, 供大家参考. 1.Inte ...

  10. IDEA修改背景颜色为护眼绿

    IDEA修改背景颜色为护眼绿 使用全绿色的图片作为背景,可以实现整个IDE都是绿色背景的 实际效果: 设置方法:File–>Settings–>Appearance & Behav ...

最新文章

  1. vanpopup 高度_解决VantUI popup 弹窗不弹出或无蒙层的问题
  2. PowerDesigner小技巧
  3. mysql全量和增量备份脚本
  4. tensorflow 之 tf.reshape 之 -1
  5. HTML、JSP、Servlet中的相对路径和绝对路径 页面跳转问题
  6. BZOJ 3673: 可持久化并查集 by zky
  7. 基于实时计算Flink版的场景解决方案demo
  8. python创建socket对象_python---一个简单的socket
  9. RequireJS代码文件依赖管理 - 入门篇
  10. cocos2d-x和objective-c中的retain()和release()
  11. protobuf android ndk,直接在Android NDK端使用tensorflow(不使用JAVA api)
  12. oracle关于字符串函数,Oracle字符串处理函数
  13. 2020阿里云线上峰会预告 | 凌云时刻
  14. 74系列标准逻辑集成芯片分类
  15. python图像坐标系_世界坐标系、相机坐标系和图像坐标系的转换(Python)
  16. 不止跑路,拯救误操作rm -rf /*的小伙儿
  17. 原生Androidx86 7.1 移动硬盘 装机及卸载经验
  18. 虎牙第二季度财报:总收入29.62亿元,净利润下滑10%
  19. 微信域名拦截检测API接口
  20. 河南省中专高考计算机大专分数线,河南省中专分数线一般多少分

热门文章

  1. 本地文件无法复制到VMware虚拟机
  2. app推送怎么实现更好的效果?
  3. 用图形化文件对比工具kdiff3解决git rebase冲突
  4. Java实现 LeetCode 273 整数转换英文表示
  5. python定义结构体_python中定义结构体的方法
  6. Python.PyAutoGUI.利用手机模拟器破解Yousee密码
  7. 高等数学学习笔记——第九十讲——斯托克斯公式
  8. c语言的数据类型说明保留字,第三章 数据类型、运算符与表达式
  9. 点云匹配介绍与ICP算法
  10. 无向图的邻接表表示法