studio onkeylistener example event ejemplo code android input webview key dispatch

onkeylistener - Cómo proporcionar entrada a un campo de entrada webView mediante programación en Android Kitkat(4.4)



webview android ejemplo (1)

Puede usar la clase de Instrumentation para esto. Lo probé con Android 4.4 y funciona.

Primero asegúrese de que WebView tenga foco, luego llame a sendCharacterSync() para enviar eventos clave individuales. Tenga en cuenta que estas llamadas se deben realizar desde un hilo de fondo (esto es obligatorio).

Por ejemplo:

final Instrumentation instrumentation = new Instrumentation(); new Thread(new Runnable() { @Override public void run() { instrumentation.sendCharacterSync(KeyEvent.KEYCODE_H); instrumentation.sendCharacterSync(KeyEvent.KEYCODE_I); instrumentation.sendCharacterSync(KeyEvent.KEYCODE_TAB); instrumentation.sendCharacterSync(KeyEvent.KEYCODE_T); instrumentation.sendCharacterSync(KeyEvent.KEYCODE_H); instrumentation.sendCharacterSync(KeyEvent.KEYCODE_E); instrumentation.sendCharacterSync(KeyEvent.KEYCODE_R); instrumentation.sendCharacterSync(KeyEvent.KEYCODE_E); } }).start();

El único problema es que obtienes un efecto de "máquina de escribir" (es decir, las letras aparecen una por una, no todas a la vez).

Necesito proporcionar entrada a un control de entrada de webview programmatically. Para eso estaba usando webView.dispatchKeyEvent () y funcionó bien hasta la versión Android 4.3 pero no está funcionando en la versión 4.4 (Kitkat - Chromium webView).

Veo las declaraciones a continuación en el logcat:

W/UnimplementedWebViewApi(9737): Unimplemented WebView method onKeyMultiple called from: android.webkit.WebView.onKeyMultiple(WebView.java:2179)

He intentado con dispatchKeyEvent (), onKeyDown () pero no funciona nada para Chromium webView en 4.4. Por favor, alguien me puede decir si hay una forma de enviar entradas a los campos webView mediante programación.

Tenga en cuenta que estoy buscando una solución genérica para cualquier página web (por ejemplo, campos de nombre de usuario y contraseña en la URL de Facebook) donde no conozco el nombre / id del control de entrada, así que no puedo usar un método JavaScript para cargar datos.