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