(这是一个多部分的问题,我会尽我最大的努力来总结这个场景。)
我们目前正在构建一个响应式web应用程序(新闻阅读器),允许用户在选项卡内容之间滑动,以及在每个选项卡内容内部垂直滚动。
解决这个问题的一个常见方法是使用包装器div
填充浏览器视口,将overflow
设置为hidden
或auto
,然后在其中水平和/或垂直滚动。
这种方法很棒,但有一个主要缺点:由于文档的高度与浏览器视口完全相同,移动浏览器将不会隐藏地址栏/导航菜单。
有大量的黑客和视口属性使我们能够获得更多的屏幕空间,但没有一个像minimal-ui
(在iOS 7.1中引入)一样有效。
昨天有消息称,iOS 8 beta4已经从移动Safari中删除了minimal-ui
(参见iOS 8发布说明中的Webkit部分),这让我们想知道:
Q1。是否仍然可以在移动Safari上隐藏地址栏?
据我们所知,iOS 7 不再有回应到window.scrollTo
黑客,这表明我们必须接受更小的屏幕空间,除非我们采用垂直布局或使用mobile-web-app-capable
。
Q2。还有可能拥有类似的软全屏体验吗?
这里的软全屏指的是不使用mobile-web-app-capable
元标记。
我们的网页应用程序被构建为可访问的,任何页面都可以书签或共享使用本机浏览器菜单。通过添加mobile-web-app-capable
,我们可以防止用户调用这样的菜单(当它保存到主屏幕时),这让用户感到困惑和反感。
minimal-ui
曾经是中间地带,默认情况下隐藏菜单,但用水龙头打开 -尽管苹果可能由于其他可访问性问题(例如用户不知道点击哪里来激活菜单)而删除了它。
第三季。全屏体验值得费心吗?
看起来全屏API不会很快出现在iOS上,但即使是这样,我也不知道菜单将如何保持可访问性(Android上的Chrome也是如此)。
在这种情况下,也许我们应该让移动safari保持原样,并考虑视口高度(对于iPhone 5+,它是460 = 568 - 108,其中108包括操作系统栏,地址栏和导航菜单;对于iPhone 4或更老版本,是372)。
很乐意听到一些替代方案(除了构建原生应用程序)。