【问题标题】:How to hide IOS safari address bar on scroll?如何在滚动时隐藏 IOS Safari 地址栏?
【发布时间】:2019-09-06 02:15:05
【问题描述】:

我正在构建 PWA,发现滚动时很难隐藏 IOS Safari 导航栏(地址栏),我尝试了所有可用的解决方案,但不幸的是,没有任何帮助。有什么方法可以隐藏 iPhone (IOS 7+) safari 的滚动地址栏吗?

header.scss

display: flex;
padding: 0 16px;
width: 100%;
align-items: center;
color: white;
position: absolute;
background-color: #353f50;
top: 0;
height: 64px;
z-index: 2;

footer.scss

  position: absolute;
  bottom: 0;
  display: flex;
  justify-content: space-around;```

router-outlet content has height: calc(100vh-64px)

Current output:
![Current](https://i.imgur.com/mapbX0i.jpg)

Expected:
![Expected](https://i.imgur.com/eCbCUUI.jpg)

【问题讨论】:

    标签: angular typescript mobile-safari progressive-web-apps angular-pwa


    【解决方案1】:

    将此元标记添加到 index.html 的头部

    <meta name="apple-mobile-web-app-capable" content="yes">

    https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html

    【讨论】:

    • 是的,我添加了这个,这只有在用户从浏览器按添加到主屏幕时才有用
    【解决方案2】:

    如果您实现了 PWA,您可以通过在 Web 清单文件中设置 display 属性来指定它在浏览器中的呈现方式。

    我写了一篇文章详细解释了different display values 以及应用程序的外观。

    在您的情况下,我会使用display: standalone,因为它将删除地址栏并在单独的窗口中打开应用程序(与浏览器使用的窗口不同)。

    布局如下(注意没有地址栏):




    如果这不起作用,因为 iOS 对 PWA 的支持很糟糕,你可以:

    1. 添加<meta name="apple-mobile-web-app-capable" content="yes">标签

    1. 使用pwacompatlibrary

    【讨论】:

    • 什么都试过了,还是一样
    • 如果你访问浏览器开发工具,你能看到 service worker 安装正确并且 web manifest 没有任何警告吗?
    • 不,没什么。如果我添加到主屏幕,它会完美运行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 2011-08-11
    • 1970-01-01
    • 2012-01-21
    相关资源
    最近更新 更多