¿Qué eventos de DOM están disponibles para WebKit en Android?
Estoy creando una aplicación web móvil dirigida a usuarios de Android. Necesito saber qué eventos de DOM están disponibles para mí. He podido hacer el siguiente trabajo, pero no terriblemente confiable:
- hacer clic
- ratón sobre
- ratón hacia abajo
- Mouseup
- cambio
No he podido conseguir lo siguiente para trabajar:
- ¿Cuánto apoyo hay para -webkit-overflow-scrolling: touch
- Android Web App: Posición: fijo roto?
- ¿Qué hacen exactamente setUseWideViewPort () y setLoadWithOverviewMode ()?
- Gotchas / errores en el desarrollo de WebKit en iOS o Android
- ¿Habilitar el registro interno en el emulador de Android WebKit?
- Pulsación de teclas
- Clave
- tecla Arriba
¿Alguien sabe la lista completa de lo que se apoya y en qué contextos (por ejemplo, onchange sólo está disponible para formar entradas?)? No puedo encontrar una referencia para esto en The Googles.
¡Gracias!
Actualización: he hecho la misma pregunta en la lista de desarrolladores de Android . Estaré haciendo más pruebas y publicaré mis resultados aquí y allá.
- Obtiene la última URL cargada de webview sin hacer un webView.goBack () en Android
- No se puede descargar .apk vía webbrowser desde el sitio drupal
- ¿Google Chrome beta para la carga del archivo de soporte de Android con el atributo webkitdirectory?
- ¿Incluyendo la versión webkit utilizada en el navegador Android?
- Android / Mobile Webkit CSS Antecedentes-Adjunto: fijo ¿No funciona?
- Una gran cantidad de NPE de DeviceMotionService suceder recientemente
- ¿Cómo actualizar manualmente el navegador android con el último webkit (nocturno)?
- Habilitar posicionamiento fijo real en los navegadores de Android de Samsung
OK, esto es interesante. Mi caso de uso es que tengo una serie de enlaces (etiquetas A
) en una pantalla en una vista de WebKit. Para probar qué área de eventos está disponible, usando jQuery 1.3.1, adjuntaré todos los eventos listados en esta página (incluso aquellos que no tengan sentido) a los enlaces, luego usaré los controles arriba, abajo e ingresar en el emulador de Android y notaré Qué hechos se dispararon en qué circunstancias.
Aquí está el código que usé para adjuntar los eventos, con los resultados a seguir. Tengo en cuenta que estoy utilizando la vinculación de eventos "en vivo" porque para mi aplicación, las etiquetas A
se insertan dinámicamente.
$.each([ 'blur', 'change', 'click', 'contextmenu', 'copy', 'cut', 'dblclick', 'error', 'focus', 'keydown', 'keypress', 'keyup', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'mousewheel', 'paste', 'reset', 'resize', 'scroll', 'select', 'submit', // W3C events 'DOMActivate', 'DOMAttrModified', 'DOMCharacterDataModified', 'DOMFocusIn', 'DOMFocusOut', 'DOMMouseScroll', 'DOMNodeInserted', 'DOMNodeRemoved', 'DOMSubtreeModified', 'textInput', // Microsoft events 'activate', 'beforecopy', 'beforecut', 'beforepaste', 'deactivate', 'focusin', 'focusout', 'hashchange', 'mouseenter', 'mouseleave' ], function () { $('a').live(this, function (evt) { alert(evt.type); }); });
Así es como se sacudió:
-
En la carga de la primera página sin nada destacado (sin caja de selección naranja fea alrededor de cualquier elemento), utilizando el botón hacia abajo para seleccionar el primer elemento, los siguientes eventos disparados (en orden):
mouseover
,mouseenter
,mousemove
,DOMFocusIn
-
Con un elemento seleccionado, moviéndose al siguiente elemento con el botón hacia abajo, se dispararán los siguientes eventos (en orden):
mouseout
,mouseover
,mousemove
,DOMFocusOut
,DOMFocusIn
-
Con un elemento seleccionado, al hacer clic en el botón "enter", se dispararán los siguientes eventos (en orden):
mousemove
,mousedown
,DOMFocusOut
,mouseup
,click
,DOMActivate
Esto me parece un montón de basura al azar. Y, ¿quién es ese evento mouseenter
IE-only ( mouseenter
) que hace un cameo, después tomando el resto del día libre? Oh bueno, al menos ahora sé qué eventos a tener en cuenta.
Sería genial si otros quieren tomar mi código de prueba y hacer una ejecución más completa a través, tal vez utilizando elementos de formulario, imágenes, etc
Dado que este es el segundo más popular de Android + JavaScript post en SO (que es sólo un triste comentario sobre el estado del desarrollo web dirigido a la plataforma Android), pensé que puede valer la pena incluir un enlace a los resultados de la prueba pkk touch evento en http: //www.quirksmode.org/mobile/tableTouch.html y también http://www.quirksmode.org/mobile/ en general.
A partir de Android 1.5, el mismo toque (iniciar | mover | terminar | cancelar) los eventos que el iPhone soporta el trabajo en Android también.
Un problema que encontré fue que touchmove termina ponerse en cola. Todavía no hay solución.
- Usando SeekBar para controlar el volumen en android?
- Cambiar programaticamente el ancho del botón en android