如何使用 Android 剪贴板管理器将文本粘贴到 WebView 的空输入中?
How do I paste text with Android clipboard manager in an empty input in a WebView?
我们在 Android 的 webview 应用程序上有一个带有输入元素的网页。
如果输入的文本不为空,有文本,您可以触摸,剪贴板管理器启动并显示:
- 当剪贴板为空时 "select all"
- 当剪贴板已满“粘贴,select全部”
但是,当输入文本为空时,您无法启动剪贴板管理器来粘贴文本。
我应该在 Android webview 应用上实现 onLongClick 吗?如果是,启动 Android 剪贴板管理器的代码是什么?
我应该加一个html粘贴按钮然后用html代码解决吗?
这是我找到的最佳解决方案,只要在加载到 myWebView
的网页的聚焦输入中完成长按,就可以获取剪贴板的文本并将其粘贴到 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;
}
});
我们在 Android 的 webview 应用程序上有一个带有输入元素的网页。
如果输入的文本不为空,有文本,您可以触摸,剪贴板管理器启动并显示:
- 当剪贴板为空时 "select all"
- 当剪贴板已满“粘贴,select全部”
但是,当输入文本为空时,您无法启动剪贴板管理器来粘贴文本。
我应该在 Android webview 应用上实现 onLongClick 吗?如果是,启动 Android 剪贴板管理器的代码是什么?
我应该加一个html粘贴按钮然后用html代码解决吗?
这是我找到的最佳解决方案,只要在加载到 myWebView
的网页的聚焦输入中完成长按,就可以获取剪贴板的文本并将其粘贴到 javascriptmyWebView.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;
}
});