ios – Cordova隐藏状态栏

前端之家收集整理的这篇文章主要介绍了ios – Cordova隐藏状态栏前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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打开了项目,我可以看到设置配置正常:

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

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

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

>在应用程序启动期间隐藏(选中)
>需要全屏(已选中)

在信息>自定义iOS目标属性,我已设置以下内容

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

我也尝试在触发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
});

猜你在找的iOS相关文章