cordova隐藏状态栏
我正在用Phonegap和Framework7构buildiPad的应用程序,无论我做什么,我都无法将状态栏隐藏在iPad上。
我试过Google的几个教程,包括以下问题:
- 如何使用Phonegap Build去除iOS状态栏?
- 如何在iOS中使用Cordova完全隐藏状态栏?
- Cordova / Phonegap在iOS上的config.xml中忽略全屏首选项
我已经尝试了上述问题的所有答案中提供的解决scheme,我的状态栏仍然存在。
我用xCode打开了项目,我可以看到设置configuration正确:
对于部署信息中的iPhone设置:
- 状态栏样式:默认
- 隐藏状态栏(选中)
- 需要全屏(选中)
对于部署信息中的iPad设置:
- 隐藏在应用程序启动(选中)
- 需要全屏(选中)
在“ Info > Custom iOS Target Properties
,我设置了以下内容:
- 查看基于控制器的状态栏外观:NO
当deviceready
事件被触发时,我也尝试使用JavaScript方法:
StatusBar.hide();
更新
当我运行:
StatusBar.isVisible
该属性返回false,但我仍然看到顶部的白色栏。
经过长时间的debugging,我终于明白了问题所在。
事实上,状态栏是隐藏的,我们将看到的白色条形框架是由Framework7提供的叠加层,它解释了以下内容:
StatusBar.isVisible // false
显然,Framework7隐藏了状态栏,但在应用程序的顶部留下了一个空白的白条,这是一个填充。
因此,要删除栏,我不得不从html
标签中删除with-statusbar-overlay
类的类。 为此,我将以下内容添加到我的Javascript文件中:
document.documentElement.classList.remove('with-statusbar-overlay');
请注意,必须在deviceready
事件之前执行Javascript修复程序。 否则,你会看到与酒吧的主页视图,然后酒吧将消失。 如果你把它放在事件之前,用户将永远看不到吧。
document.documentElement.classList.remove('with-statusbar-overlay'); Dom7(document).on('deviceready', function(){ // Your code });