是否可以隐藏(完全删除,不更改样式)主屏幕Web应用程序中的iOS Safari状态栏?
当您在横向模式下浏览Safari中的网页时,状态栏会在开始滚动后与浏览器的其余部分一起消失。
我添加到主屏幕的网络应用程序,如果符合显示器的大小,则不可滚动。
设置后:
<meta content='initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'> <meta content='yes' name='apple-mobile-web-app-capable'> <meta content='white-translucent' name='apple-mobile-web-app-status-bar-style'>
所有浏览器镶边都消失了,但状态栏信息仍然覆盖在屏幕方向的页面顶部。是否可以隐藏它?
答案 0 :(得分:0)
没有直接的方法(see: similar question),但......这个链接看起来很有希望:
主要评论(在链接):
在Safari中查看网站时,您无法自定义 状态栏以任何方式。以前的iOS版本提供了 能够以全屏模式查看网站,但已删除 iOS7,见
http://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-review
主要说明( in link ):
StatusBar Cordova插件
借助iOS7,Apple推出了一些原生的Objective C API来控制 状态栏。因为科尔多瓦,我们有能力弥合这些 原生API直接进入JavaScript API 对我们来说幸运的是@shazron已经用StatusBar plugin完成了这个。
将插件添加到您的应用程序后,您将获得一个StatusBar 对象有多种方法来操纵状态栏 直接使用JavaScript ...
您可以使用 StatusBar.hide()隐藏状态栏,甚至可以更改它 StatusBar.backgroundColorByName()或的背景颜色 StatusBar.backgroundColorByHexString()。
例如,以下设置将状态栏设置为绿色。<script> document.addEventListener('deviceready', function() { StatusBar.overlaysWebView(false); StatusBar.backgroundColorByName('green'); }, false); </script>
...
未解决的问题虽然网络已经为大多数iOS7状态提供了变通方法 酒吧问题,还有一些尚未解决。
- 状态栏仍然覆盖了cordova InAppBrowser中显示的内容。 没有已知的解决方法,但修复程序为slated for cordova 3.2。
- StatusBar插件在将设备锁定为横向模式的应用程序中不起作用。
主要评论家评论(在链接):
这些解决方案似乎只适用于Phonegap应用程序 我们谁不使用这个,只是简单地将我们的应用程序包装在webview中 唯一容易的解决方案是将webview的top属性设置为20 而不是零,而是处理手头的问题。