ionic3 строка состояния Android не отображается значок

Когда я обновляю свою ионную версию проекта, приложение андроида имеет строку состояния, которая не может отображать значок при входе в приложение:

enter image description here

При входе в приложение:

enter image description here

Кто-нибудь знает, как решить? Моя информация:

cli packages: (/usr/local/lib/node_modules)

@ionic/cli-utils  : 1.17.0
ionic (Ionic CLI) : 3.17.0

глобальные пакеты:

cordova (Cordova CLI) : 7.1.0 

локальные пакеты:

@ionic/app-scripts : 3.0.1
Cordova Platforms  : android 6.3.0 ios 4.6.0-nightly.2017.11.22.24bfb734
Ionic Framework    : ionic-angular 3.8.0

система:

ios-deploy : 1.9.2 
ios-sim    : 5.0.13 
Node       : v7.10.0
npm        : 5.5.1 
OS         : macOS Sierra
Xcode      : Xcode 9.0.1 Build version 9A1004 

Переменные среды:

ANDROID_HOME : not set

Разное:

backend : legacy

Ответы

Ответ 1

import { StatusBar } from '@ionic-native/status-bar/ngx';
import { Platform } from 'ionic-angular';

@Component({
    templateUrl: 'app.html'
})
export class MyApp {
    constructor(public platform: Platform, public statusBar: StatusBar) {
        platform.ready().then(() => {
            statusBar.styleDefault();
            if (platform.is('android')) {
                statusBar.overlaysWebView(false);
                statusBar.backgroundColorByHexString('#000000');
            }
        });
    }
}

Это исправило мою проблему.

Ответ 2

Я разрешил

statusBar.styleBlackOpaque();

вместо

statusBar.styleDefault();

Ответ 3

Я нашел это полезным. Вы можете использовать один из этих трех вариантов в ионном 3

import { StatusBar } from '@ionic-native/status-bar';
import { Platform } from 'ionic-angular';

@Component({
  templateUrl: 'app.html'
})
export class MyApp {
  constructor(public platform: Platform, public statusBar: StatusBar) {

    this.platform.ready().then(() => {
      // for Black
      if(this.platform.is('android')) {
        this.statusBar.styleBlackOpaque();
      }
    }
  }
}

Вы также можете использовать один для цвета шестнадцатеричного кода

this.statusBar.backgroundColorByHexString('#fff');

Это одно для светлой темы, которая встроена.

this.statusBar.styleLightContent();

Ответ 4

в вашем app.component.ts Убедитесь, что у вас есть

import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
...   

@Component({
      templateUrl: 'app.html'
    })
    export class MyApp {

      constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) {
        platform.ready().then(() => {
          // Okay, so the platform is ready and our plugins are available.
          // Here you can do any higher level native things you might need.
          statusBar.styleDefault();
          splashScreen.hide();
        });
    }

И чтобы быть в безопасности, выполните следующие команды.

$ ionic cordova plugin add cordova-plugin-statusbar
$ npm install --save @ionic-native/status-bar

Когда все будет сделано. Создайте свой Apk с помощью своей любимой команды, или вы тоже можете попробовать это

$ ionic cordova run android --device  

Ответ 5

Измените statusBar.styleDefault() на statusBar.styleLightContent() в app.component.ts.