de la ventana.orientación devuelve valores diferentes en iOS y Android

Estoy probando mi Aplicación Web en iPad (navegador Safari) y Samsung Tab 2 (navegador por Defecto). El ventana.orientationchange devuelve valores diferentes en ambos dispositivos.

$(document).ready(function() {
            window.addEventListener("orientationchange", centerLoginBox);
            window.addEventListener("load", centerLoginBox);
        });

        function centerLoginBox() {
            if (window.orientation == 90 || window.orientation == -90) { //Landscape Mode
                $('#loginbox').css('margin-top', '20%');
                alert(window.orientation);
            }
            else if (window.orientation == 0 || window.orientation == 180) { //Portrait Mode
                $('#loginbox').css('margin-top', '40%');
                alert(window.orientation);
            }

De la Ficha 2 la alerta lanza ‘0’ y ‘180’ para paisaje modo y los valores ’90’ y ‘-90’ para retrato modo(sólo el comportamiento opuesto en el iPad).

Se trata de algún tipo de diferencia en el diseño en iOS y Android? Lo que podría ser una solución común a este problema?

  • En mis pruebas el iPad, el iPhone y el Nexus 4 devuelven los mismos valores: 0 para el normal retrato, 90 para el sentido contrario paisaje, -90 de las agujas del reloj paisaje y 180 al revés retrato.
InformationsquelleAutor Sayan | 2012-12-24

2 Kommentare

  1. 3

    Ok, esto es lo que hice. Me preguntó por el Agente de Usuario de la información y se comprueba si el dispositivo basado en Android. Si es así, el cambio de las condiciones de ventana.orientación tanto Retrato y modo de Paisaje.

    CÓDIGO

    function centerLoginBox() {
            var ua = navigator.userAgent.toLowerCase();
            var isAndroid = ua.indexOf("android") > -1; //Detect Android devices
            if (isAndroid) {
                //window.orientation is different for iOS and Android
                if (window.orientation == 0 || window.orientation == 180) { //Landscape Mode
                    $('#loginbox').css('margin-top', '20%');
                }
                else if (window.orientation == 90 || window.orientation == -90) { //Portrait Mode
                    $('#loginbox').css('margin-top', '40%');
                }
            }
            else {
                if (window.orientation == 90 || window.orientation == -90) { //Landscape Mode
                    $('#loginbox').css('margin-top', '20%');
                }
                else if (window.orientation == 0 || window.orientation == 180) { //Portrait Mode
                    $('#loginbox').css('margin-top', '40%');
                }
            }
        }
    • bien, parece que ahora va a ser en modo horizontal cuando o=90||-90
    • Estoy de acuerdo, las últimas pruebas que he hecho han demostrado ahora iOS y Android están trabajando de la misma manera por la ventana.orientación
    • ¿window.orientation devolver un valor diferente para android??
  2. 0

    Como se mencionó en la segunda respuesta en este pregunta puede asignar dos oyentes: uno para el cambio de orientación y uno para el tamaño de la anchura/altura de pantalla de los valores. de esta manera usted no tiene que depender de los valores de la rotación debido a que son inconsistentes en los diferentes dispositivos.

    • Pero el de la ventana.orientación los valores varían……..y el problema sigue siendo el mismo.
    • Este, explica algunos de los detalles de de la ventana.orientación de los valores en los diferentes dispositivos.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea