我正在使用Phonegap和Framework7构建一个iPad应用程序,无论我做什么,我都无法将状态栏隐藏在iPad上.
我试过谷歌一些教程,包括以下问题:
> How to remove iOS status bar with Phonegap Build?
> How to completely hide the status bar in iOS using Cordova?
> Cordova/Phonegap ignores fullscreen preference in config.xml on iOS
我已经尝试了上述问题的所有答案中提供的解决方案,我的状态栏仍然存在.
我用xCode打开了项目,我可以看到设置配置正常:
对于部署信息中的iPhone设置:
>状态栏样式:默认
>隐藏状态栏(选中)
>需要全屏(已选中)
对于部署信息中的iPad设置:
>在应用程序启动期间隐藏(选中)
>需要全屏(已选中)
>查看基于控制器的状态栏外观:否
我也尝试在触发deviceready事件时使用JavaScript方式:
StatusBar.hide();
更新
当我跑:
StatusBar.isVisible
该属性返回false,但我仍然看到顶部的白色条.
解决方法
经过长时间的调试,我终于找到了问题所在.
实际上,状态栏是隐藏的,我们将看到的白色条是Framework7提供的叠加层,它解释了以下内容:
StatusBar.isVisible // false
显然,Framework7隐藏了状态栏,但在应用程序顶部留下了一个空白条,这是一个填充.
所以要删除栏,我不得不从html标签中删除带有-status-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 });