写webview长按复制的代码
时间: 2023-06-02 16:05:47 浏览: 140
以下为写webview长按复制的代码:
```
// 获取 WebView
WebView webView = findViewById(R.id.web_view);
// 长按监听事件
webView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// 获取 UserAgent
String userAgent = webView.getSettings().getUserAgentString();
// 创建 ClipboardManager 对象
ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
// 获取选中文字
String selectedText = "";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// API 23 及以上版本使用 getSelectedText
selectedText = webView.getSelectedText();
} else {
// API 23 以下版本使用反射获取
try {
Method method = WebView.class.getMethod("emulateShiftHeld", new Class[]{});
method.invoke(webView, null);
selectedText = webView.getCopyOrShareSelectionText();
method.invoke(webView, null);
} catch (Exception e) {
e.printStackTrace();
}
}
// 复制选中文字到 ClipboardManager 中
ClipData clipData = ClipData.newPlainText(userAgent, selectedText);
clipboardManager.setPrimaryClip(clipData);
// 防止点击事件继续传递
return true;
}
});
```
阅读全文