iOS Phonegap中的白色状态栏?

时间:2013-11-19 02:48:45

标签: ios xcode cordova statusbar

如何在Phonegap 3.1.0 for iOS7中使用白色文本制作顶级状态栏半透明?

应用程序在移动Safari中看起来很好,但是当我尝试在Phonegap中运行它时,顶部栏中的文本仅在应用程序加载时为白色,之后无论我在项目配置中设置什么设置它都是黑色。

现在网页上有<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">&amp; <状态栏样式'= XCode中的'黑色半透明'......没有用。

请帮助!

7 个答案:

答案 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();

https://github.com/phonegap-build/StatusBarPlugin

答案 3 :(得分:1)

请看下面的链接,希望这可以帮到你。

http://devgirl.org/2014/07/31/phonegap-developers-guid/

答案 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);

iOS7中的状态栏问题

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,这似乎可以隐藏它。