gpt4 book ai didi

android - 如何使用android webview将所选文本动态复制到剪贴板

转载 作者:行者123 更新时间:2023-11-30 00:48:11 24 4
gpt4 key购买 nike

我使用 Android Webview 来显示一些文本。我正在为 Webview 实现 LongClickListener。如果我长按 Webview ,我会收到回调,但如何以编程方式将所选文本复制到 Android 中的剪贴板。我正在尝试使用链接 issue , 但它给我 NoSuchMethodException。这是代码

@Override
public boolean onLongClick(View view) {
System.out.println("long click of webview");

Class<? extends WebView> webViewClass = mWebvView.getClass();
java.lang.Class<WebView>[] parameterType = null;
java.lang.reflect.Method method = null;
try {
method = webViewClass.getDeclaredMethod("copySelection", parameterType);
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
java.lang.Object[] argument = null;
try {
method.invoke(mWebvView, argument);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
System.out.println("Copied selection into clipboard");
return true;
}

最佳答案

截至目前,您无法使用 java api 复制所选文本或对所选文本执行任何操作。要执行此操作,您应该使用 Javascript 函数,这在 API>= 19 中非常有效。

webview.evaluateJavascript("(function(){return window.getSelection().toString()})()",
new ValueCallback<String>()
{
@Override
public void onReceiveValue(String value)
{
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("webView", value);
clipboard.setPrimaryClip(clip);
}
});

将此方法添加到您的 onLongClick 回调中。

关于android - 如何使用android webview将所选文本动态复制到剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41477548/

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