GWT:隐藏移动设备上的地址栏

时间:2013-06-13 15:14:49

标签: javascript gwt jsni navigationbar address-bar

我试图在移动设备上隐藏我的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 个答案:

答案 0 :(得分:3)

为什么不改变您的应用fullscreen

你必须考虑不同的实现(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上的Using Fullscreen Mode,以及hacks.mozilla.org上的Using the fullscreen API in web browsers

另请查看robnyman的this useful gist以便快速离开。