【问题标题】: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;
                }
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-23
      • 2013-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-31
      • 2017-09-16
      相关资源
      最近更新 更多