iOS Phonegap中的白色状态栏?

Posted

技术标签:

【中文标题】iOS Phonegap中的白色状态栏?【英文标题】:White status bar in iOS Phonegap? 【发布时间】:2013-12-02 10:52:36 【问题描述】:

如何在 ios7 的 Phonegap 3.1.0 中用白色文本使顶部状态栏半透明?

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

现在在网页中有 <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> 和 XCode 中的 'Status Bar Style' = 'Black Translucent'... 没有帮助。

请帮忙!

【问题讨论】:

【参考方案1】:

您可以在没有任何元标记或在 XCode 中编辑任何内容的情况下执行此操作。

首先,通过 CLI 安装状态栏插件:

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

【讨论】:

这应该是推荐的答案,因为它更易于维护。 所有插件都重命名了,所以现在应该是cordova plugin add cordova-plugin-statusbar blacktranslucent 对我不起作用,但 default 对我起作用并且状态栏变成黑色半透明【参考方案2】:

终于找到了解决办法。

确保您具备以下条件: 在您的 index.html 有以下元标记:

<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">

在 Xcode 中,打开 [YourPrjectName].plist 并添加以下行:

“状态栏样式”=“透明黑色样式(alpha of 0.5)”AND "查看基于控制器的状态栏外观" = "NO"

没有第二行将不起作用(实际上,这就是我的问题)。

【讨论】:

很遗憾,对我不起作用——状态栏仍然是透明的,带有黑色文本 是的,解决了在 iOS 7 中完美显示状态栏后的白色状态栏问题:***.com/a/18886468/706751 我实际上不得不使用 Xcode 更改 MainViewController.xib 文件中的设置 - 第 4 个 tabicon(看起来像滑块的那个,在标尺的右侧)有像 Size 这样的选项,方向,状态栏,顶部栏等 - 在这些下方,在色调颜色选项的正上方,是背景 - 将其更改为黑色! :)【参考方案3】:

如果你使用phonegap build,你可以调用

StatusBar.styleLightContent();

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

【讨论】:

【参考方案4】:

看看下面的链接,希望对你有帮助。

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

【讨论】:

Chrome 说该网站包含恶意软件【参考方案5】:

可能为时已晚,但有相同问题的其他人可以通过安装以下插件来解决此问题。

cordova plugin add cordova-plugin-disable-ios11-statusbar --save

然后构建并运行应用程序,问题将得到解决

【讨论】:

【参考方案6】:

添加这个

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/

【讨论】:

谢谢,但这不是我想要实现的。我希望顶栏是: 1. 半透明,所以顶栏将与它下面的任何东西“相同颜色”; 2. 使用白色字体...当我在 Safari 中运行我的应用程序时,我两者都有...但是当我在 PhoneGap 中运行它时,顶部栏的字体颜色是 黑色 .如何使它白色 试试这个可能会有帮助 1)alexvanderzon.com/metatags (2)maximilianhoffmann.com/article/building-ios-web-apps (3)mobilexweb.com/blog/safari-ios7-html5-problems-apis-review【参考方案7】:

我想一个更新的答案可能会对这里的人有所帮助,这适用于 cordova 3.7+ 和 iOS 8.x,并且不需要额外的插件。

在项目的 plist 文件中,确保“状态栏最初是隐藏的”和“基于控制器的状态栏外观”都设置为“否”

然后,在 MainViewController.m 中,- (void)viewDidLoad 内添加:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];

状态栏中的白色或黑色文本。

或者完全隐藏,将上面的两个 plist 属性设置为 YES,这似乎可以隐藏它。

【讨论】:

以上是关于iOS Phonegap中的白色状态栏?的主要内容,如果未能解决你的问题,请参考以下文章

无法使用xcode phonegap在ios中隐藏状态栏

从PhoneGap Camera API返回时如何隐藏iOS7状态栏?

少数 iOS 设备上的状态栏显示为白色

修复了 PhoneGap 中 iOS 状态栏重叠但状态栏不显示的问题

PhoneGap 2.7 在状态栏中显示活动指示器

如何使用 Phonegap Build 删除 iOS 状态栏?