cordova隐藏状态栏

我正在用Phonegap和Framework7构buildiPad的应用程序,无论我做什么,我都无法将状态栏隐藏在iPad上。

我试过Google的几个教程,包括以下问题:

  • 如何使用Phonegap Build去除iOS状态栏?
  • 如何在iOS中使用Cordova完全隐藏状态栏?
  • Cordova / Phonegap在iOS上的config.xml中忽略全屏首选项

我已经尝试了上述问题的所有答案中提供的解决scheme,我的状态栏仍然存在。

我用xCode打开了项目,我可以看到设置configuration正确:

对于部署信息中的i​​Phone设置:

  • 状态栏样式:默认
  • 隐藏状态栏(选中)
  • 需要全屏(选中)

对于部署信息中的i​​Pad设置:

  • 隐藏在应用程序启动(选中)
  • 需要全屏(选中)

在“ 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 });