2012-08-09 20 views
6

Necesito activar programáticamente el modo de selección de texto en una WebView, pero el código que he utilizado no funciona en Jelly Bean?Android: Programe automáticamente el modo de selección de texto en WebView en Jelly Bean

He estado usando el siguiente código pero ya no funciona en Android 4.1 (Jelly Bean) porque WebView.selectText, emulateShiftHeld y el envío de claves ya no son compatibles con Jelly Bean.

Siguiendo código que funciona con todas las versiones hasta ICS se basa en: 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); 
     } 
    } 
} 

¿Cómo implementar una funcionalidad similar que funciona en Jelly Bean?

+0

Hola @Martin, ¿finalmente has resuelto esto? – davids

+0

Hola davids, he enumerado una posible solución en los comentarios aquí: http://stackoverflow.com/questions/7581131/how-to-enable-the-default-highlight-menus-in-android-webview – Martin

+0

Gracias @Martin :) – davids

Respuesta

2

He enumerado una solución potencial en los comentarios aquí: How to enable the default highlight menus in android webview?

Aquí está el contenido de la posible solución: Después de analizar android.webkit.WebViewClassic que han tenido cierto éxito con lo siguiente:

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

I Pensé que se necesitaría más, ya que necesitaba desplazarme un poco por el WebView antes de que lo anterior funcionase al usar un emulador, pero después de probarlo en un dispositivo JellyBean real, lo anterior parece funcionar bien.

Cuestiones relacionadas