【问题标题】:Android: Programatically trigger text selection mode in a WebView on Jelly BeanAndroid:以编程方式在 Jelly Bean 上的 WebView 中触发文本选择模式
【发布时间】:2012-08-09 10:54:16
【问题描述】:

我需要在 WebView 中以编程方式触发文本选择模式,但我使用的代码在 Jelly Bean 上不起作用?

我一直在使用以下代码,但它不再适用于 Android 4.1 (Jelly Bean),因为 Jelly Bean 不再支持 WebView.selectText、emulateShiftHeld 和 key dispatch。

以下适用于 ICS 之前的所有版本的代码基于:How to enable the default highlight menus in android webview?

public void selectAndCopyText() {
    try {
        // ICS
            WebView.class.getMethod("selectText").invoke(this);
        } catch (Exception e1) {
        try {
            Method m = WebView.class.getMethod("emulateShiftHeld", (Class[])null);
            m.invoke(this, (Object[])null);
        } catch (Exception e2) {
            // fallback
            KeyEvent shiftPressEvent = new KeyEvent(0,0,
                     KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT,0,0);
            shiftPressEvent.dispatch(this);
        }
    }
}

如何实现适用于 Jelly Bean 的类似功能?

【问题讨论】:

标签: java android webview copy-paste android-4.2-jelly-bean


【解决方案1】:

我在此处的 cmets 中列出了一个潜在的解决方案:How to enable the default highlight menus in android webview?

以下是潜在解决方案的内容: 在分析android.webkit.WebViewClassic 之后,我在以下方面取得了一些成功:

KeyEvent enterEvent = new KeyEvent(0,0,KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_ENTER,0,0);
enterEvent.dispatch(this); 

我认为可能需要更多操作,因为在使用模拟器时我需要在上述操作之前向下滚动WebView,但在真正的 JellyBean 设备上进行测试后,上述操作似乎正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多