我知道此问题的变体已被问过几十次,但我还没有找到解决这个问题的方法:我希望能够在iOS 7上看到一个非重叠的状态栏,使用Adobe和# 39; s Phonegap Build。
我已将PhoneGap状态栏插件添加到我的config.xml:
<gap:plugin name="com.phonegap.plugin.statusbar" version="1.1.0" />
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" onload="true" />
</feature>
这会导致黑色状态栏正确显示不重叠我的网站,但文字(大概)是黑色的,因为我无法看到它。
我已经从config.xml中移除了ios-statusbarstyle
首选项以获得良好的衡量标准,它似乎没有任何区别。
plugin page提到PhoeGap构建不支持config.xml选项,所以我尝试使用StatusBar javascript对象。这是我完整的index.html文件:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
StatusBar.show();
StatusBar.overlaysWebView(false);
StatusBar.backgroundColorByHexString("#C8DB2F");
}
</script>
</head>
<body onload="onLoad()">
Test.
</body>
</html>
但是backgroundColorByHexString()函数什么都不做,事实上,根本没有任何StatusBar对象 - 这可以通过使用PhoneGap Build的调试窗口来确认,因为我尝试放置任何JS在那些行不会被执行之后,可能会发生错误。
有关如何设置状态栏背景颜色或文本颜色的任何想法?我是否必须使用CLI而不是PhoneGapBuild?
答案 0 :(得分:2)
可能为时已晚......但我使用了您的确切代码,它适用于我的应用程序在phonegap构建。我改用了这个插件。
<gap:plugin name="org.apache.cordova.statusbar" version="0.1.4" />
这将调用onDeviceReady函数:
// wait for phonegap to be ready
document.addEventListener('deviceready', onDeviceReady, false);
答案 1 :(得分:0)
我注意到JS在使用PhoneGap Developer App进行测试时有效,但在iOS模拟器进行测试时(即从命令行运行cordova emulate ios
时)。进一步测试,在iOS模拟器中,似乎deviceready
事件根本不会触发。
Google搜索&#34;手机广告设备未被解雇&#34;给我类似的错误报告,虽然他们都得到了神秘的解决,通常是通过重新安装或修复错字。
一个切线有用answer pointed out问题可能在于插件;特别是文件插件。我没有使用File插件,但我检查了模拟器的system.log,这给了我一些与插件有关的错误:
Sep 12 10:26:58 username.local MyApp[8218] <Warning>: ERROR: Plugin 'StatusBar' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
[…]
Sep 12 10:26:58 username.local MyApp[8218] <Warning>: ERROR: Plugin 'Device' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
所以我删除了所有项目&#39;插件然后重新添加它们。我在重新安装之前和之后检查了版本,而版本是相同的:
org.apache.cordova.console 0.2.10 "Console"
org.apache.cordova.device 0.2.11 "Device"
org.apache.cordova.geolocation 0.3.9 "Geolocation"
org.apache.cordova.statusbar 0.1.7 "StatusBar"
再次运行模拟器,deviceready
事件被触发并且状态栏颜色发生了变化!
所以,总结一下:你使用了什么插件,并尝试重新安装它们?