将webview选定文本保存到剪贴板

时间:2018-02-25 12:04:16

标签: android webview

我为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;
        }
    });
}

1 个答案:

答案 0 :(得分:1)

可以使用 WebView evaluateJavascript 方法检索所选文本,以评估以下脚本: (function(){return window.getSelection().toString()})()

脚本的结果是通过回调的 onReceiveValue 方法返回的,更多细节在以下帖子中描述:

https://stackoverflow.com/a/44898840/378795