在 webview 中突出显示选定的文本。 [Android]

Highlight the selected text in webview. [Android]

我在 Web 视图中有某些文本。我可以 select 那些文字。我想突出显示这些文字,但我不知道该怎么做。任何人对此有任何想法,请帮助!谢谢!

您需要 运行 java 脚本

 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:block;background:#ffc570;\");"+
    "range.insertNode(span);}"+
    "</script> ";

  webView.loadUrl("javascript:highlightSelection()");

确保您启用了 java脚本

WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);

在 Android 4.1(jellybean) 中,WebView.findAll() 已弃用,我们应该改用 WebView.findAllAsync。

reference

希望得到帮助:)