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

时间:2018-05-16 14:36:12

标签: android cordova cordova-plugins android-statusbar

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

我还注意到,当我在设备上运行项目并卸载了插件时,视图会占用整个屏幕,但是如果我在安装插件的情况下运行它,则应用视图与顶部和底部之间会出现黑色空间。手机的导航栏和状态栏(图2)。

设备:三星S9运行Android 8.0.0(奥利奥)
Cordova版本: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();

pic1 pic2

2 个答案:

答案 0 :(得分:1)

我已经对您的代码进行了测试,它可以在Android 5,6,7和8.1的4个不同设备上正常运行,因此它显然是插件中的一个错误。 (可能是设备特定的或供应商特定的)

请在https://issues.apache.org/jira/browse/CB上报告,提供所有可能的信息。 (有关此问题的信息"问题"应该足够了)

答案 1 :(得分:1)

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

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

如果这对你有任何帮助。