电容器和离子本机状态栏

Capacitor and Ionic native status-bar

我已经创建了 Ionic 4 Capacitor 应用程序。它默认显示这个并且没有 Cordova 插件。

package.json

   "@ionic-native/splash-screen": "^5.0.0",
   "@ionic-native/status-bar": "^5.0.0",

app.component.ts

 async initializeApp(): Promise<void> {
    await this.platform.ready();

    this.statusBar.styleDefault();
    this.splashScreen.hide();

  }

但是 Capacitor 文档说它在哪里 not compatible with it。我是否需要删除此原生插件并使用 Capacitor 实现,或者因为这里没有 Cordova,这不会有问题吗?

电容器声明与 cordova 插件不兼容,因为它提供了自己的 cordova-plugin-statusbar (not needed, Capacitor has its own) 因此,我建议您应该使用电容器中的那个。

与此类似的内容:

const { SplashScreen, StatusBar } = Plugins;
try {
  await SplashScreen.hide();
  await StatusBar.setStyle({ style: StatusBarStyle.Light });
} catch (err) {
  console.log('This does not have influence on the browser', err);
}

我们正在努力更新入门应用模板 - 很快,它们将默认为 Capacitor API。

我认为这两个确实与 Cap 一起工作,但正如 Ricardo 所写,我们的建议是使用 Capacitor API。

这是我在我们的 sample apps 之一中使用的内容:

import { Component } from '@angular/core';
import { Plugins } from '@capacitor/core';
const { SplashScreen } = Plugins;

@Component({
  selector: 'app-root',
  templateUrl: 'app.component.html',
  styleUrls: ['app.component.scss']
})
export class AppComponent {
  constructor() {
    this.initializeApp();
  }

  initializeApp() {
    /* To make sure we provide the fastest app loading experience 
       for our users, hide the splash screen automatically 
       when the app is ready to be used:

        https://capacitor.ionicframework.com/docs/apis/splash-screen#hiding-the-splash-screen
    */
    SplashScreen.hide();
  }
}

四处寻找都没有找到解决方法。

但在试用 Xcode 之后,我发现了一个临时解决方案。

您将不得不使用 Xcode 中的本机代码更改状态栏颜色...这是我唯一可以提供的解决方案