【问题标题】:Cordova Hide Status BarCordova 隐藏状态栏
【发布时间】:2017-10-18 18:00:36
【问题描述】:

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

我尝试谷歌搜索了一些教程,包括以下问题:

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

我已经用 xCode 打开了项目,我可以看到设置配置得很好:

对于部署信息中的 iPhone 设置:

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

对于部署信息中的 iPad 设置:

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

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

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

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

StatusBar.hide();

更新

当我跑步时:

StatusBar.isVisible

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

【问题讨论】:

  • 您是否已将状态栏插件添加到您的应用中?
  • @kris 是的,我已经在应用程序中添加了它。

标签: ios cordova phonegap-build statusbar html-framework-7


【解决方案1】:

经过几个小时的调试,我终于弄清楚了问题所在。

其实状态栏是隐藏的,我们看到的白条就是Framework7提供的overlay,说明如下:

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

【讨论】:

    猜你喜欢
    • 2016-08-07
    • 2014-11-14
    • 1970-01-01
    • 2015-01-01
    • 2011-04-29
    • 2014-10-30
    相关资源
    最近更新 更多