我正在使用离子3处理一个简单的应用程序,该应用程序正在运行,但我在启动画面期间状态栏有问题,它是黑色的,我想改变颜色与闪屏相同的蓝色
我尝试使用Ionic Native - Splash Screen,它会改变状态栏的颜色,但是在启动画面之后
这里是代码
initializeApp() {
this.platform.ready().then(() => {
this.statusBar.overlaysWebView(false);
this.statusBar.backgroundColorByHexString('#002e5b');
this.keyboard.disableScroll(true);
});
}
有没有办法实现这个目标?感谢。
答案 0 :(得分:3)
我有同样的问题。然后用叉子将其固定:
https://github.com/goinnn/cordova-plugin-splashscreen/tree/4.0.0%23colors
安装此货叉:
ionic cordova plugin rm cordova-plugin-splashscreen
ionic cordova plugin add https://github.com/goinnn/cordova-plugin-splashscreen.git#4.0.0#colors
如果出现此错误:
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
又一次(非常疯狂):
ionic cordova plugin add https://github.com/goinnn/cordova-plugin-splashscreen.git#4.0.0#colors
在您的config.xml中:
<platform name="android">
<preference name="SplashStatusBarBackgroundColor" value="#YOUR_COLOR" />
<preference name="SplashNavigationBarBackgroundColor" value="#YOUR_COLOR" />
答案 1 :(得分:0)
Splash screen
。
平台准备就绪后,状态栏颜色将为#002e5b
。
this.platform.ready().then(() => {
this.statusBar.overlaysWebView(false);
this.statusBar.backgroundColorByHexString('#002e5b');
this.keyboard.disableScroll(true);
});
我认为在此方法platform
之前无法访问this.platform.ready()
。
答案 2 :(得分:0)
如果您使用单一颜色的飞溅作为背景,请将状态栏颜色更改为相同。
对于Android,请在styles.xml
中添加以下内容(我显示的状态栏为白色背景)
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar">
<item name="android:statusBarColor">@android:color/white</item>
</style>
<style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
<item name="android:statusBarColor">@android:color/white</item>
</style>
答案 3 :(得分:0)
我不知道这是否是正确的方法,但我没有找到其他方法。
这就是我所做的:
1-我删除了“闪屏”插件并再次添加,但这次是分叉。
ionic cordova 插件添加 https://github.com/goinnn/cordova-plugin-splashscreen.git#4.0.0#colors
2- 然后在这个路径:platforms\android\app\src\main\java\org\apache\cordova\splashscreen.java
更改这些代码行:
// Inspirated in https://github.com/apache/cordova-plugin-splashscreen/pull/124/files
String statusBarColor = preferences.getString("SplashStatusBarBackgroundColor", "#000000");
if (statusBarColor != null && !statusBarColor.isEmpty() && Build.VERSION.SDK_INT >= 19) {
splashWindow.clearFlags(0x04000000);
splashWindow.addFlags(0x80000000);
try {
// Using reflection makes sure any 5.0+ device will work without having to compile with SDK level 21
splashWindow.getClass().getMethod("setStatusBarColor", int.class).invoke(splashWindow, Color.parseColor(statusBarColor));
} catch (Exception ignore) {
// this should not happen, only in case Android removes this method in a version > 21
LOG.w("SplashScreen StatusBarColor", "Method window.setStatusBarColor not found for SDK level " + Build.VERSION.SDK_INT);
}
}
3-在 config.xml 文件中添加此首选项:
<preference name="SplashStatusBarBackgroundColor" value="#50ABC5" />
是的,这对我有用。