无法更改$ cordovaStatusbar文字颜色

时间:2016-01-05 23:54:40

标签: ios cordova ionic-framework cordova-plugins

我的Ionic应用程序状态栏出现问题。更具体地说,无论我采用何种风格,我都无法更改条形默认颜色。

我已经检查过ngCordova并且cordovaStatusbar插件已经正确安装。

CODE SNIPPET

app.run(function ($ionicPlatform, $cordovaStatusbar) {

  $ionicPlatform.ready(function () {

        // Color the iOS status bar 
        if (window.StatusBar) {
            $cordovaStatusbar.overlaysWebView(true);
            $cordovaStatusbar.styleHex('#f50'); 
        }
    });
});

这是我使用ionic emulate ios命令在xCode模拟器中获得的结果。

xCode simulator statusbar

修改

经过多次测试后,我认为问题更深入。 .show()或.hide()方法都不起作用。

app.run(function ($ionicPlatform, $cordovaStatusbar) {

  $ionicPlatform.ready(function () {

        $cordovaStatusbar.hide(); //not hiding the status bar
    });
});

3 个答案:

答案 0 :(得分:4)

来自插件github page

  

在iOS 7上,当您将StatusBar.statusBarOverlaysWebView设置为false时,   您可以通过十六进制字符串设置状态栏的背景颜色   (#RRGGBB)。

所以我通过以下方式实现了这个目标:

  1. 确保ngCordova为installed
  2. 将OverlaysWebView设置为false并设置颜色。

    if(window.StatusBar) {
       $cordovaStatusbar.overlaysWebView(false);
       $cordovaStatusbar.styleHex('#FF0000') //red
    }
    
  3. enter image description here

答案 1 :(得分:2)

文字只能是白色或黑色

这将使用黑色:

$cordovaStatusbar.styleDefault();

任何一种都会使用白色:

$cordovaStatusbar.styleLightContent();
$cordovaStatusbar.styleBlackTranslucent();
$cordovaStatusbar.styleBlackOpaque();

在iOS 7之前,这些风格很有意义,现在它们都是一样的。

要更改状态栏颜色,必须先将overlaysWebView设置为false。

$cordovaStatusbar.overlaysWebView(false);

如果这是真的,它将是透明的,你将无法改变颜色。

答案 2 :(得分:1)

我在开发的其中一个应用中遇到了同样的问题。以下插件适用于我们https://github.com/apache/cordova-plugin-statusbar

if (window.StatusBar) {

            StatusBar.styleLightContent();
    } 

编辑:要隐藏状态栏,您可以使用window.StatusBar.hide();