科尔多瓦隐藏状态栏

Chi*_*ung 8 statusbar ios cordova phonegap-build html-framework-7

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

我试过谷歌一些教程,包括以下问题:

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

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

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

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

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

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

Info > Custom iOS Target Properties,我已设置以下内容:

  • 查看基于控制器的状态栏外观:否

deviceready事件被触发时我也尝试使用JavaScript方式:

StatusBar.hide();
Run Code Online (Sandbox Code Playgroud)

更新

当我跑:

StatusBar.isVisible
Run Code Online (Sandbox Code Playgroud)

该属性返回false,但我仍然看到顶部的白色条.

Chi*_*ung 8

经过长时间的调试,我终于找到了问题所在.

事实上,状态栏是隐藏的,我们将看到的白色栏是Framework7提供的叠加层,它解释了以下内容:

StatusBar.isVisible // false
Run Code Online (Sandbox Code Playgroud)

显然,Framework7隐藏了状态栏,但在应用程序的顶部留下了一个空白的白条,这是一个填充.

所以要删除栏,我不得不with-statusbar-overlayhtml标签中删除该类.为此,我将以下内容添加到我的Javascript文件中:

document.documentElement.classList.remove('with-statusbar-overlay');
Run Code Online (Sandbox Code Playgroud)

请注意,必须在deviceready事件之前执行Javascript修复.否则,您将看到带有条形图的主视图,然后条形图将消失.如果你把它放在事件之前,用户将永远不会看到该栏.

document.documentElement.classList.remove('with-statusbar-overlay');

Dom7(document).on('deviceready', function(){
    // Your code
});
Run Code Online (Sandbox Code Playgroud)