在 chrome (android) 上隐藏移动浏览器地址栏

Posted

技术标签:

【中文标题】在 chrome (android) 上隐藏移动浏览器地址栏【英文标题】:hide mobile browser address bar on chrome (android) 【发布时间】:2013-07-21 10:21:43 【问题描述】:

我们有一个网站,使用简单的 javascript

<body onLoad="setTimeout(function() window.scrollTo(0, 1), 100);">

我们在大多数浏览器(safari 和原生 android 浏览器)上隐藏了地址栏,这行 JavaScript 对大多数人来说都可以正常工作,但我们注意到 chrome 上有一个奇怪的行为,页面确实向下滚动,但地址栏没有不要隐藏!页面加载完成后,如果用户用手指向下滚动一点,地址栏会正常隐藏。

我也试过用JS向下滚动所有页面,页面完全滚动的结果,地址栏仍然可见...

有人知道我是否忘记使用某些技巧,或者 Chrome 中根本不存在此功能吗?

【问题讨论】:

您的应用程序中是否有 webview 并且要隐藏地址栏? 不,我有一个网站的移动版本,(以前类似于 web 应用程序),我想隐藏设备浏览器的地址栏,这适用于默认浏览器 nd 对于某些其他的,比如 doplhin、safari 等等,但是对于 chrome,这个 hack 不起作用。 【参考方案1】:

scrollTo(0,1) 在 Chrome for Android 中尚不支持(它是最近添加的,然后被删除)。我们确实有 FullScreen API,但对于您想要实现的目标来说,这有点笨拙。

【讨论】:

scrollTo() 在 Chrome for Android 中得到完全支持,但它并没有像你想象的那样做。【参考方案2】:

Chrome Mobile 的最新更新(7 月 22 日)似乎破坏了工具栏自动隐藏功能。向下滚动页面时,工具栏不再自动隐藏。我的 Nexus 4 就是这种情况。

7 月 22 日更新为平板电脑带来全屏模式。但我猜他们不小心破坏了智能手机的功能。全屏模式以前可以在智能手机上使用。

Chrome Browser Play Store

【讨论】:

【参考方案3】:

我找到了第一次点击后如何隐藏地址栏的方法

if (document.body.webkitRequestFullScreen) 
  window.addEventListener('click', function(e) 
    if (e.target.type != 'text' && e.target.type != 'password') 
      body.webkitRequestFullScreen();
      window.setTimeout(function() 
        document.webkitCancelFullScreen();
      , 500);
    
  , false);

【讨论】:

"不要拦截第一个触摸事件并发出请求全屏。" - html5rocks.com/en/mobile/fullscreen

以上是关于在 chrome (android) 上隐藏移动浏览器地址栏的主要内容,如果未能解决你的问题,请参考以下文章

如何在移动 Android 智能手机上的 Chrome 浏览器中进行“硬页面重新加载”

在移动 Chrome 上隐藏键盘不会改变窗口高度

Android Chrome 浏览器地址栏移动固定元素命中区域

将网页输入字段滚动到顶部防止被软键盘隐藏

如何在移动设备上发送推送通知(Android Chrome)PWA

开启新大门,Android 版 Chrome 的隐藏小功能