我为WebView创建了一个自定义菜单,我希望能够做的一个选项就是复制。如何从WebView获取所选文本?
@Override
public void onActionModeStarted(ActionMode mode) {
super.onActionModeStarted(mode);
MenuInflater menuInflater = mode.getMenuInflater();
Menu menu = mode.getMenu();
menu.clear();
menuInflater.inflate(R.menu.highlight, menu);
menu.findItem(R.id.custom_one).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("webView", val); //How to get the val?
clipboard.setPrimaryClip(clip);
return false;
}
});
}
答案 0 :(得分:1)
可以使用 WebView 的 evaluateJavascript 方法检索所选文本,以评估以下脚本:
(function(){return window.getSelection().toString()})()
脚本的结果是通过回调的 onReceiveValue 方法返回的,更多细节在以下帖子中描述: