Selecting text in a WebView?

前端 未结 2 1343
说谎
说谎 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:39

    This chunk of code does the exact same thing as emulateshiftheld(). It allows the user to select text. Then automatically copies it to the clipboard.

            KeyEvent shiftPressEvent = new KeyEvent(0,0,
                     KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT,0,0);
                shiftPressEvent.dispatch(portal);
    
    0 讨论(0)
  • 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.

    0 讨论(0)
提交回复
热议问题