【问题标题】:Cordova: StatusBar plugin works on emulator but not on deviceCordova:StatusBar 插件适用于模拟器,但不适用于设备
【发布时间】:2018-10-26 16:15:43
【问题描述】:

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

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

设备:运行 Android 8.0.0 (Oreo) 的三星 S9
科尔多瓦版本:8.0.0
状态栏插件版本: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();

【问题讨论】:

  • 您用于从 config.xml 设置状态栏颜色的代码在哪里?也就是说,StatusBarBackgroundColor 值。 index.js 文件与状态栏插件设置无关。
  • @andreszs 感谢您的回复,据我了解,不再需要 了。状态栏在有或没有它的情况下在 AVD 中正确着色,并且它不会在设备天气上着色我是否将其添加到配置文件中。

标签: android cordova cordova-plugins android-statusbar


【解决方案1】:

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

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

如果这对您有任何帮助。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 感谢您的评论!一旦确认这是插件错误,我会立即接受您的回答。
    猜你喜欢
    • 1970-01-01
    • 2012-11-01
    • 2011-03-08
    • 2015-02-13
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多