GWT: Скрыть адресную строку на мобильных устройствах

Я пытаюсь скрыть адресную строку моего приложения GWT на мобильных устройствах. Из моего мобильного кода я вызываю функцию JSNI ниже, но она не работает. Любое решение, которое вы можете придумать, которое не включает JQuery?

public static native void hideBar()
/*-{
    $($doc).ready(function() {
        function hideAddressBar() {
            if($doc.documentElement.scrollHeight < $wnd.outerHeight / $wnd.devicePixelRatio) {
               $doc.documentElement.style.height = ($wnd.outerHeight / $wnd.devicePixelRatio) + "px";
            }
        }

        $wnd.addEventListener("load", function() { hideAddressBar(); });
        $wnd.addEventListener("orientationchange", function() { hideAddressBar(); });
    });
}-*/;   

1 ответ

Решение

Почему бы не сделать ваше приложение полноэкранным?

Вам придется учитывать различные реализации (префиксы webkit и gecko, наименование методов отличается от стандартов W3C и т. Д.), Но в вашем случае это похоже на путь.

Вместо hideAddressBar()есть goFullScreen()хулиганит:

function goFullScreen() {
    var docElm = $doc.documentElement;
    if (docElm.requestFullscreen) {
        docElm.requestFullscreen();
    } else if (docElm.mozRequestFullScreen) {
        docElm.mozRequestFullScreen();
    } else if (docElm.webkitRequestFullScreen) {
        docElm.webkitRequestFullScreen();
    }
}

См. Использование полноэкранного режима в MDN, а также Использование полноэкранного API в веб-браузерах на hacks.mozilla.org.

Также ознакомьтесь с этой полезной идеей от robnyman для быстрого начала работы.

Другие вопросы по тегам