无法使用Cordova更改状态栏

时间:2015-07-28 02:46:43

标签: javascript android cordova statusbar

我正在使用Cordova构建混合应用程序,我正在尝试动态更改状态栏的颜色。我动态地这样做的原因是不同的平台可以使用稍微不同的颜色,使它感觉更原生。

我的项目中有installed cordova-plugin-statusbar,现在我的应用程序JS代码中有StatusBar个对象。但是,当我尝试使用StatusBar.backgroundColorByHexString方法时,它不起作用。

以下是处理此问题的代码:

function onDeviceReady() {
    document.addEventListener( 'pause', onPause.bind( this ), false );
    document.addEventListener( 'resume', onResume.bind( this ), false );


    if (StatusBar) {
        window.alert("The plugin loaded correctly.");
    }
    if (cordova.platformId == 'ios') {
        StatusBar.overlaysWebView(false);
        StatusBar.backgroundColorByHexString("#4CAF50");
        window.alert("The plugin should have run.");
    } else {
        StatusBar.backgroundColorByHexString("#388E3C");
        window.alert("The plugin should have run.");
    }
};

代码运行时不会抛出任何错误,但它根本不会改变状态栏(我在Android设备上测试,所以我假设在其他平台上发生了相同的行为)。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我终于明白了,所以如果有其他人有这个问题,这就是解决方案:

  1. 启动Cordova工具扩展的卸载程序
  2. “修复”扩展程序并重新启动Visual Studio
  3. 进入设置并清除Cordova缓存
  4. 将Cordova CLI版本更改为5.1.1
  5. 要完成对5.1.1的更新,请安装白名单插件,将域政策信息添加到config.xml文件,然后将<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">等CSP政策标记添加到您的每个页面中应用