Javascript 如何保存webview中的选定文本,该文本可在下次进行唯一标识

Javascript 如何保存webview中的选定文本,该文本可在下次进行唯一标识,javascript,android,html,android-webview,jsoup,Javascript,Android,Html,Android Webview,Jsoup,我有一个任务,在这个任务中,我必须从Webview中保存选定的文本,通过这种方式,当我在Webview中再次打开该页面时,我可以唯一地识别该文本 我已经尝试从Webview中获取所选文本,这很容易。我使用了下面的方法从webview检索所选文本 if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.KITKAT){ browser.evaluateJavascript(((function(){return window.getSelection().

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

  • 我已经尝试从Webview中获取所选文本,这很容易。我使用了下面的方法从webview检索所选文本

    if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.KITKAT){

    browser.evaluateJavascript(((function(){return window.getSelection().toString()})()”,
    新的ValueCallback(){
    @凌驾
    公共无效onReceiveValue(字符串值){
    Toast.makeText(getActivity(),((value.length()>0)?“所选文本:\n”+值:“请选择文本”)、Toast.length\u SHORT.show();
    }
    });
    }
    
  • 但是现在我试图检索该元素的tag/id,我想,我可以使用它来唯一地标识所选元素

    • 我在文档中搜索支持的方法以实现 但没有找到任何特定的API
    • 我搜索jsoup库来解析HTML,并尝试查找文本,但这种方法并没有涵盖大多数情况(我知道..这很糟糕!!)
    • 我尝试了JSoup库,但是当我搜索它时,JSoupAPI也没有任何这样的API/功能来处理所选文本
    我对JS不是很了解,所以如果你有更好的建议,请告诉我

  • 我找到了一个JS库。但我现在知道了如何将它与我的代码集成。 我试过以下方法

    webview.loadDataWithBaseURL(“file:///android_asset/javascript/rengy,网址为“text/html”、“utf-8”和“)

    • 加载Rangy的js资产,以便调用它的函数
    • 试图初始化Rangy库(Rangy.init),但这似乎也不起作用。(我肯定错过了一些简单的东西,但还无法理解)

  • 我可以以同样的方式使用任何其他JS库吗?欢迎提出任何建议。

    下次可以唯一识别这些建议。
    。我不清楚您下次要标识什么。
    我想,我可以使用它来唯一标识所选元素一个网页会有更多选择吗?我想一次选择一个,但有两件事。1.所选文本可以很大,并且可能有多个父标记。2.用户可以在一个页面上多次执行此操作。
    下次可以唯一标识该页面。
    。我不清楚您下次要标识什么。
    我想,我可以使用它来唯一标识所选元素一个网页会有更多选择吗?我想一次选择一个,但有两件事。1.所选文本可以很大,并且可能有多个父标记。2.用户可以用一个页面做多次。
    
            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();
                        }
                    });
        }