IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> webView 修改背景颜色 -> 正文阅读

[移动开发]webView 修改背景颜色

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

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

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

代码产考:

 binding.mWebview.getSettings().setJavaScriptEnabled(true);//允许使用JavaScript

String 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);

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 18:16:18  更:2022-06-25 18:17:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 2:24:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码