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

使用Phonegap Build 3.1时可以摆脱iOS7中的状态栏吗? 在Xcode中本地构build时,我可以删除状态栏,但是一旦我尝试Phonegap Build,它就会返回。

  1. 有configuration偏好来完全删除状态栏?
  2. 如果没有,是否有可能覆盖应用程序视图顶部的状态栏,并将其设置为透明背景?

希望状态栏按下应用程序视图20px,这是现在的情况。

从Phonegap 3开始,您现在可以通过config.xml 自定义plist文件。

码:

<gap:config-file platform="ios" parent="UIViewControllerBasedStatusBarAppearance" overwrite="true"> <false/> </gap:config-file> 

将此函数添加到MainViewController.m文件中:

 //fix not hide status on ios7 - (BOOL)prefersStatusBarHidden { return YES; } 

通常,你会编辑info.plist并添加这个键:

  <key>UIViewControllerBasedStatusBarAppearance</key><false/> 

但是,如果你不能在构build中做到这一点,你将不得不添加一个插件:

https://github.com/phonegap-build/StatusBarPlugin/blob/master/README.md

接着:

StatusBar.hide();

点击XCode根项目文件夹下的“projectname-Info.plist”文件,你将看到一个UI,你可以看到关键的vs值条目,你可以添加/删除键,添加一个新的键,只要find“状态栏初始隐藏“并设置”是“作为值。

我正在config.xml中使用以下内容,完全删除状态栏,在iOS 7.0.3&7.0.4,Phonegap版本3.0.0(如果有帮助的话)上testing。

  <preference name="fullscreen" value="true" /> 

只需安装状态栏插件(我正在使用Cordova 5.x):

 cordova plugin add cordova-plugin-statusbar@1.0.1 

在你的代码中引用它的全局variables并使用.hide():

 StatusBar.hide() 

随着cordova,我不得不做2件事情。

  1. 当我用XCode构build时,我将Target-> Statusbar style设置为 – > HIDDEN,这会在启动屏幕上启动时隐藏状态栏。

  2. 你还必须在设备上用插件隐藏它。 否则,它会重新出现。 要做到这一点,安装插件:

cordova plugin add org.apache.cordova.statusbar

并在deviceready上调用它:

 StatusBar.hide(); 

这对我工作:

 <preference name="fullscreen" value="true" /> 

我正在使用Android。

我已经回答了您在上一个问题中完全 删除状态栏

关键部分:

我得到了这个在cordova3.6 + iOS 7.1美丽的工作。 而且考虑到iOS 7和8都有50%的市场份额,这个解决scheme应该足够了。

我正在使用的插件: org.apache.cordova.statusbar

而不是使用StatusBar.hide()我用:

 var hideSb = function(){ // StatusBar.hide; cordova.exec(null, null, 'StatusBar', 'hide', ['Ehi', 'You']); };