Ant*_*nyk 78 javascript safari html5 ios ios7
我不相信有任何解决方案可以使用javascript/css/html以编程方式隐藏栏,但让我试着描述一个问题.我们是移动游戏开发者团队,我们一直在开发游戏一年.
在iOS 7发布后,我们遇到了隐藏导航栏是不可能的问题.一旦用户点击Safari浏览器的上部或下部,导航栏就会再次出现并隐藏游戏的所有控件.
到目前为止我们找到的唯一解决方案是强制用户:
这些替代方案都不可接受.Apple似乎意识到了这个问题,但一直忽视它.他们关闭了一个报告的bug作为bug#14076889的副本.
我相信我们不是唯一遇到同样问题的团队.有谁知道解决方案?
tho*_*chs 118
2014年9月更新:iOS 8已删除该minimal-ui
功能
除了依赖默认浏览器行为之外,再次无法删除/隐藏导航栏(滚动时将隐藏栏,但仅当滚动元素是BODY
页面的栏时).唯一的"解决方法"是将应用程序保存到主屏幕并设置正确的元标记(见下文).
2014年8月更新:iOS 8(测试版)不再支持minimal-ui
.没有解决方法.(原因可能是由于网站滥用它来试图阻止人们导航,因此iOS 8 Safari中可能还有一些尚未公开的新功能可以取代minimal-ui
.)
iOS 7.1添加了一个新的API来解决这个问题:
<meta name="viewport" content="minimal-ui">
Run Code Online (Sandbox Code Playgroud)
默认情况下,此新视口标志会隐藏Safari UI(仅显示带有URL和SSL指示符的小标题栏).要访问Safari UI,用户必须主动点按此标题栏.
请注意,在iOS 7.0.x上,没有API或已知的解决方法.在这些版本中,如果您想永久隐藏Safari的浏览器镶边,您需要让用户将Web应用程序添加到主屏幕(设置相应的元标记<meta name="apple-mobile-web-app-capable" content="yes">
)或使用某种本机应用程序包装,如Phonegap并通过App Store.
就个人而言,我希望他们没有删除他们在iOS 6 Mobile Safari中以横向模式引入的"全屏"按钮,这是一个让开发人员和用户满意的绝佳解决方案.
一个完美的候选者可以更永久地解决这个问题,因为Mobile Safari可以支持HTML5全屏API(OS X上的Safari支持!).唉,现在没有支持,历史上iOS点发布没有添加新的Safari功能,所以也许这适用于iOS 8.
Mar*_*ark 17
更新:根据发布说明中的论坛帖子,目前在iOS7.1 Beta中有一个元属性可用于修复此问题.
<meta name="viewport" content="minimal-ui">
Run Code Online (Sandbox Code Playgroud)
我已经运行了测试,可以确认此功能目前处于Beta 2状态.
小智 6
注意:新的minimal-ui选项是一个很好的解决方案,但它需要成为HTML响应的一部分.我尝试在iOS7.1 beta3上用JS附加视口元标记
$('head').append('<meta name="viewport" content="width=device-width, user-scalable=0, minimal-ui">');
浏览器忽略值"minimal-ui".
归档时间: |
|
查看次数: |
65624 次 |
最近记录: |