Selecting text in a WebView?

前端 未结 2 1348
说谎
说谎 2020-12-06 03:23

The browser does this by calling public void emulateShiftHeld() method on the WebView which is hidden in the SDK.
Any other options?

2条回答
  •  一整个雨季
    2020-12-06 03:51

    From the class that extends 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);
        }
    }
    

    And then you have to use ClipboardManager to watch for new text.

    Works on Android 1.5 - 2.3. emulateShiftHeld() made public since 2.2.

提交回复
热议问题