【问题标题】:How do I paste text with Android clipboard manager in an empty input in a WebView?如何使用 Android 剪贴板管理器将文本粘贴到 WebView 的空输入中?
【发布时间】:2021-12-01 07:44:53
【问题描述】:
我们在 Android 上的 webview 应用上有一个带有输入元素的网页。
如果输入的文字不为空,有文字,可以触摸,剪贴板管理器启动并显示:
- 当剪贴板为空时“全选”
- 当剪贴板已满时“粘贴,全选”
但是,当输入文本为空时,您无法启动剪贴板管理器来粘贴文本。
我应该在 Android webview 应用上实现 onLongClick 吗?如果是,启动 Android 剪贴板管理器的代码是什么?
要不要加个html粘贴按钮,用html代码解决?
【问题讨论】:
标签:
javascript
android
html
webview
【解决方案1】:
这是我找到的最好的解决方案,当在 myWebView 中加载的网页的焦点输入中完成 longclick 时,只需获取剪贴板的文本并将其粘贴到 javascript 中
myWebView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
ClipData clip;
clip = clipboard.getPrimaryClip();
String str = clip.getItemAt(0).getText().toString();
myWebView.evaluateJavascript("try{document.activeElement.value='"+str+"';}catch(e){}", new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {}
});
return true;
}
});