阻止iPad Web应用程序显示Safari地址栏

Jou*_*man 6 safari address-bar web-applications ipad jquery-mobile

我在iPad上的Safari上运行了一个Web应用程序.我从iPad主页启动应用程序.我希望应用程序以全屏模式启动,并继续以全屏模式运行(即不显示Safari地址栏).因此,我已将以下元标记添加到网站母版页:

<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="viewport" content="width=device-width">
Run Code Online (Sandbox Code Playgroud)

我从iPad主页启动应用程序,它在全屏模式下启动(不显示Safari地址栏),但是当我点击一个到站点中的另一个页面时(使用相同的元标记,继承自相同的元标记)站点主页面)然后地址栏突然弹出视图(并保持在视图中).该链接如下(我正在使用jQueryMobile):

<a href="/Home" data-ajax="false">Home</a>
Run Code Online (Sandbox Code Playgroud)

当在内部页面之间导航时,如何通过保持地址栏隐藏来强制Web应用程序保持看起来像"本机应用程序"?

Jou*_*man 7

如果您使用外部链接,似乎Mobile Safari不会"本机"支持全屏.一旦你使用html锚点,它就会翻转出全屏模式.window.scrollTo可能是一个适用于某些人的解决方法,但我也想避免在转换到非全屏模式时UI翻转的方式.

答案是使用window.location.assign().这使全屏应用程序保持"原生"全屏模式.您只需要将您的标记重构为javascript window.location.assign(url)调用 - 然后将该内容保存在全屏幕中.


小智 5

添加jQuery,您不必修改任何链接,

$(document).ready(function(){
    $('a').click(function(event){
        event.preventDefault();
        window.location.assign($(this).attr('href'));
    });
});
Run Code Online (Sandbox Code Playgroud)

示例链接:

<a href="nextpage.html">Next page without safari</a>
Run Code Online (Sandbox Code Playgroud)