Cordova:StatusBar 插件适用于模拟器但不适用于设备

Cordova: StatusBar plugin works on emulator but not on device

我有一个 cordova 项目,我安装了 StatusBar 插件来为 Android 平台中的设备状态栏着色。如果我 运行 AVD 上的项目(图 1),该插件会显示正确的状态栏颜色,但是当我 运行 它在设备上时,它似乎不起作用。

我还注意到,当我 运行 设备上的项目卸载了插件时,视图占据了整个屏幕,但如果我 运行 安装了插件,它就会显示黑色 space 在应用程序视图与 phone 的导航栏和状态栏(图 2)的顶部和底部之间。

设备:三星 S9 运行ning Android 8.0.0 (Oreo)
科尔多瓦版本:8.0.0
StatusBar插件版本:2.4.2
Cordova 白名单插件:1.3.3

index.js:

var app = {
    // Application Constructor
    initialize: function() {
        document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
    },

    // deviceready Event Handler
    //
    // Bind any cordova events here. Common events are:
    // 'pause', 'resume', etc.
    onDeviceReady: function() {
        this.receivedEvent('deviceready');
        StatusBar.backgroundColorByHexString("#CF4D4D");
    },

    // Update DOM on a Received Event
    receivedEvent: function(id) {
    }
};

app.initialize();

我已经测试了您的代码,它在 Android 5、6、7 和 8.1 的 4 种不同设备上运行良好,因此这显然是插件中的错误。 (可能特定于设备或特定于供应商)

因此请在 https://issues.apache.org/jira/browse/CB 上报告并提供所有可能的信息。 (这个"question"的资料应该够了)

您也可以在 config.xml 中设置它们:

<preference name="StatusBarOverlaysWebView" value="true" />
<preference name="StatusBarBackgroundColor" value="#CF4D4D" />
<preference name="StatusBarDefaultScrollToTop" value="false" />

如果对你有任何帮助的话。