Andorid与webView交互,获取webView选中文字,兼容了iframe
js调试效果:
下面主要是拼装js代码 :
/** * @Description 获取webView选中文字内容 * @param webView* @param callBack*/public static void webViewGetSelectedData(WebView webView,webViewGetSelectedDataCallBack callBack) {String js ="function selectEnable(document) {"+ " document.oncontextmenu = new Function(\"if(event){event.returnValue=true;}\");"+ " document.onselectstart = new Function(\"if(event){event.returnValue=true;}\");"+ " let frames = document.getElementsByTagName(\"iframe\");"+ " if (frames.length > 0) {"+ " for (var i = 0; i < frames.length; i++) {"+ " document = frames[i].contentDocument;"+ " selectEnable(document);"+ " }"+ " }"+ "}"+ "function selectTxt(document) {"+ " let rtnTxt = \"\";"+ " rtnTxt = document.getSelection ? document.getSelection().toString() : document.selection.createRange().text;"+ " let frames = document.getElementsByTagName(\"iframe\");"+ " if (frames.length > 0) {"+ " for (var i = 0; i < frames.length; i++) {"+ " document = frames[i].contentDocument;"+ " let sltTxt = selectTxt(document);"+ " if (sltTxt != \"\") {"+ " rtnTxt = sltTxt;"+ " }"+ " }"+ " }"+ " return rtnTxt;"+ "}"+ "(function(){"+ " selectEnable(document);"+ " return selectTxt(document);"+ "})()";/* android系统4.4以上的时候调用 4.4以下忽略*/webView.evaluateJavascript("javascript:" + js, txt -> {//todo 这里可以对返回文本进行处理,比如转为中文字符,过滤非法字符callBack.onFinished(txt);}); }public interface webViewGetSelectedDataCallBack{/**@param value*/void onFinished(String value);}
至于如何调用,可以通过
@Override
public void onActionModeStarted(ActionMode mode) {……webViewGetSelectedData(webView, value -> { Log.i("getSelection", "getSelectedData: "+value);});……super.onActionModeStarted(mode);
}
Andorid与webView交互,获取webView选中文字,兼容了iframe相关推荐
- c# webbrowser 获取用户选中文字
c# webbrowser 获取用户选中文字 原文:c# webbrowser 获取用户选中文字 最近一直被一个问题困扰,有一个文本框,一个webbrowser控件,一个上下文菜单, 用户用鼠标左 ...
- ie禁止html复制元素,JavaScript_禁止选中文字兼容IE、Chrome、FF等,复制代码 代码如下: $(el).attr('u - phpStudy...
禁止选中文字兼容IE.Chrome.FF等 $(el).attr('unselectable','on') .css({'-moz-user-select':'-moz-none', '-moz-us ...
- 拖动效果,防止选中文字兼容代码
css 设置方法: -moz-user-select: none; /*火狐*/ -webkit-user-select: none; /*webkit浏览器*/ -ms-user-select: n ...
- android和webview交互,android webview与原生交互
demo.html完整示例 demo 点击调用android代码 点击调用android代码并传递参数 function androidCallJs() { document.getElementBy ...
- VUE预览PDF文件并利用pdf.js获取鼠标选中的文字和搜索,在iframe中获取选中文字,监听鼠标事件,右键菜单
一.VUE预览PDF文件并利用pdf.js获取鼠标选中的文字和搜索 需求实现:vue实现预览pdf文件,获取到鼠标选中的文字数据.调用pdf.js自带的搜索方法实现搜索功能(后期可以调用该接口满足其他 ...
- 背水一战 Windows 10 (65) - 控件(WebView): 对 WebView 中的内容截图, 通过 Share Contract 分享 WebView 中的被选中的内容...
原文:背水一战 Windows 10 (65) - 控件(WebView): 对 WebView 中的内容截图, 通过 Share Contract 分享 WebView 中的被选中的内容 [源码下载 ...
- webview 交互
为什么80%的码农都做不了架构师?>>> webview 响应交互 //判断 webview里边的网址 或者其他交互 - (BOOL)webView:(UIWebView *) ...
- WebView交互架构项目实战(三):多进程WebView使用实践
*本文介绍自己在使用WebView的过程中遇到的一些问题的解决方法和对WebView的一些优化实践* *浏览器缓存知识介绍:* 浏览器缓存之 Expires , max-age, Etag , Las ...
- android读取网页标题,如何获取WebView中页面的Title信息
应用开发中需要获取WebView当前页面的标题,可能通过对WebChromeClient.onReceivedTitle()方法的重写来实现 代码如下:public class MainActivit ...
最新文章
- 编译android不再需要jdk1.5
- R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值、plot.roc函数绘制ROC曲线、添加置信区间、为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来
- 从消息到数据湖:看 Apache RocketMQ、Hudi、Kyuubi 最新进展
- 洛谷P4315 月下“毛景树”
- Jiaozi帮忙买的Secret Garden的票拿到了,谢谢Jiaozi
- Oracle高级SQL培训与讲解
- java 控制台五子棋_java控制台五子棋
- 百科系列——高一所遇
- # 20155224 实验四 Android程序设计
- R-基础测试(2)——在线帮助(转)
- Win8系统 界面大放送(Win8 抢先版)
- 利用CH341A编程器刷新BIOS,恢复BIOS,妈妈再也不用担心BIOS刷坏了
- java有abc三边求周长语句_java 给定三个点由三个点求三角形周长和面积
- 【图像处理】.jpg 和 .png
- canal同步mysql到es
- 最简单的MySQL安装教程(数据库免安装版,免安装版,亲测好用) mysql-5.7.33-winx64.zip
- 【工具】BT - 比特彗星(端口监听(UPnP、ipv6、防火墙)、反吸血、tracker、杀毒)
- 机器越“智能”,数据标注员越容易被淘汰?丨曼孚科技
- pku1036Gangsters Dp
- 清华大学保研计算机推荐信模板,清华保研推荐信模板.doc