不能用Cordova改变状态栏
Can't Change Status Bar with Cordova
我正在使用Cordova构建一个混合应用程序,我正在尝试动态改变状态栏的颜色。我这样做的原因是动态的,这样不同的平台可以使用稍微不同的颜色,让它感觉更原生一点。
我在我的项目中安装了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设备上测试,所以我假设同样的行为发生在其他平台上)。我该如何解决这个问题?
我终于弄明白了,所以如果其他人有这个问题,这里是解决方案:
- 启动Cordova工具扩展的卸载程序
- "修复"扩展并重启Visual Studio
- 进入设置并清除Cordova缓存
- 将Cordova CLI版本更改为5.1.1
- 为了完成更新到5.1.1,安装白名单插件,添加域策略信息到你的
config.xml
文件,并添加一个CSP策略标签,如<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
在你的应用程序的每个页面
相关文章:
- 为什么使用immutableJS我的状态没有改变
- 如何使用JavaScriptExecutor来获取出现在浏览器上的文本's状态栏
- Rhomobile:正在更新通知/状态栏
- 浏览器状态栏:隐藏对特定网站的请求地址
- 当鼠标悬停在链接上时,从 href URL 中隐藏状态栏值
- 使用Phonegap Build隐藏Android中的状态栏
- 如何将 phonegap 2.9.0 更新到 3.0 或在 phonegap 应用程序中隐藏状态栏
- 在状态栏中隐藏网址
- 状态栏中的推送通知 安卓科尔多瓦.
- 如何删除配置文件中的状态栏
- 创建一个可以在javascript中不断移动的状态栏
- 在IE8中隐藏地址栏和状态栏
- 带有状态栏的表单
- location.href将鼠标悬停在链接上时,使目标显示在状态栏中
- 点击状态栏不会滚动到应用程序的顶部(Trigger.io)
- 点击使用WebDriver的链接上的事件显示“;javascript:void(0)"状态栏上
- web应用程序中的状态栏通知
- jQuery-在呼叫状态栏中检测iPhone
- Phonegap状态栏通知,Android,iOS
- 不能用Cordova改变状态栏