Изменение ориентации в Android с помощью JavaScript - PullRequest
2 голосов
/ 24 января 2012
document.addEventListener("orientationChanged", updateOrientation);

Я пытаюсь вызвать функцию на updateOrientation, но функция просто не вызывается. Я использую код JavaScript для того же.

Может ли кто-нибудь помочь мне с orientationChange, используя код JavaScript.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 24 января 2012

Это не так просто: я тоже много поиграл :)

Сначала вы могли заметить, что некоторые устройства Android (например, вкладка samsung galaxy) будут обнаружены как портретные, пока они в альбомной ориентации и наоборот.,Итак, сначала вам нужно создать функции для определения ориентации на основе screen.width и screen.height, если ipad не обнаружен (ipad всегда будет правильно отображать ориентацию. Мне все равно это неинтересно).

Затем через некоторое время вы должны запустить функцию обратного вызова, чтобы изменение ориентации было обнаружено с таймаутом, чтобы позволить всей среде измениться в соответствии с новой ориентацией.

Так вот, как я это делаю ... радподелитесь:)

function orientation_changed ()
{
    if ( is_portrait() )
    {
        //do something
    }
    else if ( is_landscape() )
    {
        // do something else
    }
    clearTimeout(window.t);
    delete window.t;
}

window.t = undefined;
window.onorientationchange = function (event)
{
    window.t = setTimeout('orientation_changed();', 250);
}

function is_landscape()
{
    var uagent = navigator.userAgent.toLowerCase();
    if ( uagent.search('ipad') > -1 )
    {
        var r = ( window.orientation == 90 || window.orientation == -90 );
    }
    else
    {
        var r = ( screen.width > screen.height );
    }
    return r;
}

function is_portrait()
{
    var uagent = navigator.userAgent.toLowerCase();
    if ( uagent.search('ipad') > -1 )
    {
        var r = ( window.orientation == 0 || window.orientation == 180 );
    }
    else
    {
        var r = ( screen.width < screen.height );
    }
    return r;
}
0 голосов
/ 28 марта 2013

Чтобы проверить встроенную поддержку ориентации, используйте "orientationchange" in window

В качестве запасного варианта используйте событие onresize и отметьте window.outerHeight > window.outerWidth

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...