有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java安卓:在jellybean上的WebView中以编程方式触发文本选择模式

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

我一直在使用下面的代码,但它不再适用于Android4.1(JellyBean),因为WebView。Jelly Bean不再支持selectText、EmulateShiftHold和密钥分派

以下适用于ICS之前所有版本的代码基于:How to enable the default highlight menus in 安卓 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上实现类似的功能


共 (1) 个答案

  1. # 1 楼答案

    我在这里的评论中列出了一个可能的解决方案: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设备上测试后,上面的工作似乎很好