he encontrado algunas cosas en mis últimos esfuerzos con . iPAD
1: la versión 4.2 de iOS tiene un error en la ejecución de demasiados documento.getElementById ('foo'); hará que el navegador se demore y, por lo tanto, no ejecute los comandos correctamente. Para remediar esto, necesita crear variables para contener esta información y solo hacer los comandos de selección cuando sea necesario. Sin embargo, la versión 4.3 del iOS soluciona esto, ya que lo probé en mi iPad.
2: Cuando se trabaja con el posicionamiento, he encontrado que cuando la creación de su propio controlador de vídeo (para HTML5), si intenta cambiar el tamaño del contenedor de vídeo mediante el uso de position: relative o position: absolute, ya no lo hará ver un video, pero una bonita pantalla negra (¡con sonido!). Para remediar esto, simplemente apunte al marco principal y listo.
3: Si está utilizando iScroll, asegúrese de poner un tiempo de espera para que se cargue; especialmente si usted tiene algunas otras javascript en la página como a pesar de que el documento tiene que cargar cuando 'se carga la página' a través de:
// Load iScroll when DOM content is ready.
document.addEventListener('DOMContentLoaded', loaded, false);
he tenido esta falla, y no podía imaginar para el vida de mí por qué mi div no estaba dimensionando correctamente mostrándome todos los elementos pero los dos últimos y no desplazándome. En su lugar, simplemente hice un
$(function(){
//other page loaded items to do
//the iScroller init
setTimeout('iScrollerInit();',200);
});
y solucionó el problema muy rápidamente.
4: Si ve que sus clics no funcionan del todo bien, he descubierto que muchos de los SDK móviles que hay vinculan todo, haciendo que sea difícil conseguir clics para las cosas que normalmente desea. Así que para solucionar este problema, puede hacer algo como:
$("#yourId").unbind("click").click(function(){
//what to do when clicked
});
y he encontrado que esto funcione más brillante.
**UPDATE - Nov 2012 **: It's been a few years, and there is so much more to add to this so wanted to update the list a bit.
5: Javascript es caro en un puñado de dispositivos Still (diciembre de 2012). Hacer cosas que manipulan el DOM genera una gran cantidad de retraso en los dispositivos y debe tener mucho cuidado al hacer estas cosas. Deberá asegurarse de probar sus páginas web móviles tanto en dispositivos anteriores de Android como en dispositivos más antiguos de iPhone, ya que según nuestras métricas estos siguen siendo dispositivos bien utilizados.
6: Si estás pasando HTML para cargar en una vista-web en un dispositivo (iPhone App o Android) hay momentos en los que se ven casi una altura 0. Lo que hay que hacer es tener su La aplicación iPhone o Android realiza una llamada de Javascript en la página real dirigida a un div para verificar la altura de desplazamiento de la página, lo que permitirá que la altura de la vista web se establezca con precisión.
**UPDATE - Dec 2012 **: Few more awesome findings
7: He descubierto que cuando el destino de su divs para eventos de clic que los navegadores móviles esperarán 300 ms antes de disparar el evento, creando efectivamente un retraso. Lo hacen para confirmar que el clic no fue un doble toque. para evitar esto, puedes vincular eventos touchend en su lugar, ¡que se dispararán al instante!
Aquí hay un poco de código
$(document).ready(function() {
$('#element').bind('touchstart', function(event) {
event.stopPropagation();
event.preventDefault();
$(this).toggleClass('hover_heading');
});
$('#element').bind('touchend', function(event) {
event.preventDefault();
$(this).toggleClass('hover_heading');
});
});
A continuación, una vez que vea parpadear pasando por encima de sus artículos utilizan esto para eliminar eso.
body * {
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
Además, si desea retirar un artículo excepcional Google escribió en este se puede ver aquí: - Creating Fast Buttons for Mobile Web Applications
**UPDATE - Feb 2013 **: Few more awesome findings
: Cuando versionar sus archivos CSS y el almacenamiento en caché con URL como: midominio.com/css/styles.css?v=123 (u otra cosa), tenga cuidado con los dispositivos con Android 2.2 y antes, ya que esto genera un comportamiento extremadamente extraño.
De mis hallazgos, android lo renderizará completamente mal, y forzará al html incluso a ser arruinado. La mejor manera de trabajar con estos dispositivos más antiguos es, lamentablemente, cambiar el nombre real del archivo.
Esperamos que estos hallazgos ayudan a los demás como he luchado a través de cada uno de estos problemas a múltiples horas rascándome la cabeza :)
+1 para obtener información sobre el desfase entre el tacto de arranque/mover/final y haga clic. Gracias Adam! – Petrogad
He descubierto que tengo que e.preventDefault() en todos mis eventos táctiles para evitar que los clics también se activen. – eighteyes