我正在使用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设备上测试,所以我假设在其他平台上发生了相同的行为)。我该如何解决这个问题?
答案 0 :(得分:0)
我终于明白了,所以如果有其他人有这个问题,这就是解决方案:
config.xml
文件,然后将<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
等CSP政策标记添加到您的每个页面中应用