【发布时间】:2021-06-16 14:20:57
【问题描述】:
我正在从文本字符串中加载我的 Webview,如下所示:
String encodedHtml = Base64.encodeToString(unencodedHtml.getBytes(), Base64.NO_PADDING);
webview.loadData(encodedHtml, "text/html", "base64");
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
当用户长按一个单词时,我想在 菜单 中添加一个颜色 Highlight 选项。我在 StackOverflow 上搜索了许多其他类似的问题,但没有成功。您对一些示例代码的帮助将不胜感激。提前致谢!
更新: 我正在使用这个脚本来突出显示:
public static String HighlightScript = "<script language=\"javascript\">" +
"function highlightSelection(){" +
"var userSelection = window.getSelection();" +
"for(var i = 0; i < userSelection.rangeCount; i++)"
+ " highlightRange(userSelection.getRangeAt(i));" +
"}" +
"function highlightRange(range){"+
"span = document.createElement(\"span\");"+
"span.appendChild(range.extractContents());"+
"span.setAttribute(\"style\",\"display:inline;background:#ffc570;\");"+
"range.insertNode(span);}"+
"</script> ";
【问题讨论】:
-
使用stackoverflow.com/questions/45541253/… 膨胀菜单,点击使用上面发布的JavaScript
-
我如何在 Java 中获得突出显示的范围,以进一步保存在本地数据库中?
-
使用此示例代码 stackoverflow.com/a/7992775/2323607 编写 WebView 评估 JavaScript,在 ValueCallback 方法中,您将获得开始和结束值(但缩放比例会变得很棘手。所以可能也想保存它)
-
我可能在缩放方面有问题,但需要注意......