【问题标题】:Selecting text in a WebView?在 WebView 中选择文本?
【发布时间】:2010-11-09 20:33:32
【问题描述】:

浏览器通过调用隐藏在 SDK 中的 WebView 上的 public void emulateShiftHeld() 方法来实现这一点。
还有其他选择吗?

【问题讨论】:

  • 嘿,您的问题找到解决方案了吗?
  • 此解决方案不适用于 ICS

标签: android


【解决方案1】:

来自扩展WebView的类:

public void selectAndCopyText() {
    try {
        Method m = WebView.class.getMethod("emulateShiftHeld", null);
        m.invoke(this, null);
    } catch (Exception e) {
        e.printStackTrace();
        // fallback
        KeyEvent shiftPressEvent = new KeyEvent(0,0,
             KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT,0,0);
        shiftPressEvent.dispatch(this);
    }
}

然后您必须使用 ClipboardManager 来查看新文本。

适用于 Android 1.5 - 2.3。 emulateShiftHeld() 自 2.2 起公开。

【讨论】:

  • 只要用户通过手动选择文本来“合作”。见stackoverflow.com/questions/5250290/…
  • 在 Anroid 4.0.3 m.invoke(webView, null) 下导致本机崩溃 09-21 23:20:49.151: A/libc(4103): Fatal signal 11 (SIGSEGV) at 0x00000014 (code =1)
  • 对不起,我没听懂。我在扩展 WebView 的类中添加了 selectAndCopyText(),但是我在哪里调用此函数以允许 WebView 中的文本可选?
【解决方案2】:

这段代码的作用与 emulateshiftheld() 完全相同。它允许用户选择文本。然后自动复制到剪贴板。

        KeyEvent shiftPressEvent = new KeyEvent(0,0,
                 KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT,0,0);
            shiftPressEvent.dispatch(portal);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 2014-06-10
    • 2011-08-28
    • 1970-01-01
    相关资源
    最近更新 更多