如何保存webview中的选定文本,下次可以唯一识别

时间:2016-09-12 14:16:46

标签: javascript android html android-webview jsoup

我有一项任务,我必须以一种方式保存Webview中的选定文本,当我在Webview中再次打开该页面时,我可以唯一地识别该文本。

  1. 我已经尝试从Webview中轻松获取所选文本。我使用以下方法从webview中检索所选文本

    if(Build.VERSION.SDK_INT> = Build.VERSION_CODES.KITKAT){

            browser.evaluateJavascript("(function(){return window.getSelection().toString()})()",
                    new ValueCallback<String>() {
                        @Override
                        public void onReceiveValue(String value) {
                            Toast.makeText(getActivity(), ((value.length() > 0) ? "Selected Text:\n" + value : "Please select text"), Toast.LENGTH_SHORT).show();
                        }
                    });
        }
    
  2. 但是现在我正在尝试检索该元素的标签/ id,我认为,我可以使用它来唯一地标识所选元素。

    • 我在webView文档中搜索了要实现的受支持方法 这个,但没有找到任何特定的API。
    • 我搜索jsoup库来解析HTML,并尝试查找文本,但这种方法并不涵盖大多数情况(我知道......这很糟糕!!)
    • 我尝试了JSoup库,但是当我搜索它时,JSoup API也没有任何这样的API /功能来处理选定的文本。

    我对JS知之甚少,如果你有更好的建议,请告诉我。

    1. 我发现rangy是一个JS库。但我现在正在了解如何将其与我的代码集成。 我试过以下

      webview.loadDataWithBaseURL(“file:/// android_asset / javascript / rengy”,url,“text / html”,“utf-8”,“”);

      • 为Rangy加载js资产,以便我可以调用它的函数
      • 尝试初始化Rangy库(rangy.init),但这似乎也不起作用。 (我肯定错过了一些简单但无法弄清楚的东西)
    2. 我可以用同样的方式使用任何其他JS库吗?欢迎任何建议。

0 个答案:

没有答案