gpt4 book ai didi

android - webview-window.getselection() 值即将变为 null

转载 作者:行者123 更新时间:2023-11-29 02:21:05 25 4
gpt4 key购买 nike

我正在开发一个 android 应用程序,它有一个 WebView .在这个网页 View 中,当我选择 html 文本并执行任何操作时,window.getSelection()来了null .

一种javascript方法window.getSelection()不会每次都从 WebView 返回选定的文本。许多开发人员为此向 Google 提出了问题,但没有解决方案。 https://issuetracker.google.com/issues/36925404

我尝试了所有可能的选项来获取选择对象,例如
window.getSelection(); window.doument.getSelection(); document.getSelection(); EReader.Selection.Range.getCurrentRange();
你有什么建议吗?

最佳答案

如果 Android API >= 19,您可以使用 evaluateJavascript:

webview.evaluateJavascript("(function(){return window.getSelection().toString()})()",
new ValueCallback<String>()
{
@Override
public void onReceiveValue(String value)
{
Log.v(TAG, "SELECTION:" + value);
}
});

在旧版本上,您应该通过 webview.loadUrl 调用传递相同的内容:
webview.loadUrl("javascript:js.callback(window.getSelection().toString())");

其中 js 是附加的 javascript 接口(interface):
webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(new WebAppInterface(), "js");


public class WebAppInterface
{
@JavascriptInterface
public void callback(String value)
{
Log.v(TAG, "SELECTION:" + value);
}
}

Reference

关于android - webview-window.getselection() 值即将变为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55592331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com