如何在Phonegap 3.1.0 for iOS7中使用白色文本制作顶级状态栏半透明?
应用程序在移动Safari中看起来很好,但是当我尝试在Phonegap中运行它时,顶部栏中的文本仅在应用程序加载时为白色,之后无论我在项目配置中设置什么设置它都是黑色。
现在网页上有<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
&amp; <状态栏样式'= XCode中的'黑色半透明'......没有用。
请帮助!
答案 0 :(得分:25)
您可以在没有任何元标记或在XCode中编辑任何内容的情况下执行此操作。
首先,通过CLI安装statusbar插件:
cordova plugin add cordova-plugin-statusbar
然后,您可以使用这些首选项设置状态栏的样式(在config.xml中):
<preference name="StatusBarOverlaysWebView" value="true" />
<preference name="StatusBarStyle" value="lightcontent" />
这将为您提供iOS 7中带有白色文本的透明栏。有关其他选项,请查看http://plugins.cordova.io/#/package/org.apache.cordova.statusbar
答案 1 :(得分:10)
最后,我找到了解决方案。
确保您拥有以下内容: 在你的index.html上有以下元标记:
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
在Xcode上,打开[YourPrjectName] .plist&amp;添加以下行:
“状态栏样式”=“透明黑色样式(alpha为0.5)”和
“查看基于控制器的状态栏外观”=“否”
没有第二行将无效(实际上,这是我的问题)。
答案 2 :(得分:2)
如果您使用phonegap构建,则可以致电
StatusBar.styleLightContent();
答案 3 :(得分:1)
请看下面的链接,希望这可以帮到你。
答案 4 :(得分:1)
可能为时已晚,但其他有相同问题的人可以通过安装以下插件解决此问题。
cordova plugin add cordova-plugin-disable-ios11-statusbar --save
然后构建并运行应用程序,问题将得到解决
答案 5 :(得分:0)
添加此
function onDeviceReady() {
if (parseFloat(window.device.version) === 7.0) {
document.body.style.marginTop = "20px";
}
}
document.addEventListener('deviceready', onDeviceReady, false);
http://coenraets.org/blog/2013/09/phonegap-and-cordova-with-ios-7/
答案 6 :(得分:0)
我认为一个更新的答案可以帮助这里的人,这适用于cordova 3.7+和iOS 8.x,并且不需要额外的插件。
在项目的plist文件中,确保&#34;状态栏最初是隐藏的&#34;和&#34;查看基于控制器的状态栏外观&#34;都被设置为&#34; NO&#34;
然后,在MainViewController.m中,在- (void)viewDidLoad
内添加:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
或
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];
状态栏中的白色或黑色文字。
或者完全隐藏,将上面的两个plist属性设置为YES,这似乎可以隐藏它。