Cordova 在显示初始屏幕期间隐藏状态栏

Posted

技术标签:

【中文标题】Cordova 在显示初始屏幕期间隐藏状态栏【英文标题】:Cordova hide statusbar during show splashscreen 【发布时间】:2017-01-11 08:30:43 【问题描述】:

通过插件 cordova-plugin-splashscreen 显示的闪屏。但是当应用程序启动并显示启动画面时,状态栏并未隐藏。显示启动画面时如何隐藏状态栏?我找到了这个解决方案:

How to completely hide the status bar in ios using Cordova?

但它适用于 iOS。我的平台是安卓。

【问题讨论】:

【参考方案1】:

在 ionic 3 应用程序中,如果 <preference name="Fullscreen" value="true" /> 没有工作,请执行以下操作:

    安装全屏插件:

    ionic cordova plugin add cordova-plugin-fullscreen
    npm install --save @ionic-native/android-full-screen
    

    将此添加到config.xml 文件以自定义主题:

    <widget ... xmlns:android="http://schemas.android.com/apk/res/android">   // note this xmlns:android line
        <platform name="android">
        ...
        <edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application/activity">
          <activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
        </edit-config>
      </platform>
    </widget>
    

    src/app/app.module.ts中添加全屏提供者:

    ....
    // add this line at the top of the file, import it
    import AndroidFullScreen from "@ionic-native/android-full-screen";
    ...
    providers: [
      StatusBar,
      SplashScreen,    
      provide: ErrorHandler, useClass: IonicErrorHandler,
      AndroidFullScreen,   // here add this line
      ...
    ]
    

    src/app/app.components.ts中使用它:

    // add this line at the top of the file, import it
    import AndroidFullScreen from "@ionic-native/android-full-screen";
    ...
    constructor(public platform: Platform,
                public statusBar: StatusBar,
                public splashScreen: SplashScreen,
                public androidFullScreen: AndroidFullScreen) 
    
      // show statusbar
      this.androidFullScreen.isSupported()
        .then(() => this.androidFullScreen.showSystemUI());
    
      // style statusbar and hide splash
      this.platform.ready().then(() => 
          this.statusBar.styleDefault();
          this.splashScreen.hide();
      );
    
    ...
    

【讨论】:

像魅力 +1 一样工作 但我需要将 de 包版本更改为:npm install --save @ionic-native/android-full-screen@4【参考方案2】:

对于 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>

【讨论】:

以上是关于Cordova 在显示初始屏幕期间隐藏状态栏的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 7 和 iOS 6 中出现动画启动画面期间隐藏状态栏?

同时状态栏隐藏和视图转换

Cordova 和 iOS 8:隐藏状态栏

如何在主屏幕和子屏幕中显示状态栏和隐藏状态栏

VM全屏后 鼠标放在顶部 隐藏的状态栏不会显示

导航栏状态,显示和隐藏底部导航栏