我的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模拟器中获得的结果。
修改
经过多次测试后,我认为问题更深入。 .show()或.hide()方法都不起作用。
app.run(function ($ionicPlatform, $cordovaStatusbar) {
$ionicPlatform.ready(function () {
$cordovaStatusbar.hide(); //not hiding the status bar
});
});
答案 0 :(得分:4)
来自插件github page
在iOS 7上,当您将StatusBar.statusBarOverlaysWebView设置为false时, 您可以通过十六进制字符串设置状态栏的背景颜色 (#RRGGBB)。
所以我通过以下方式实现了这个目标:
将OverlaysWebView设置为false并设置颜色。
if(window.StatusBar) {
$cordovaStatusbar.overlaysWebView(false);
$cordovaStatusbar.styleHex('#FF0000') //red
}
答案 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();