是否有可能在使用Phonegap Build 3.1时消除iOS7中的状态栏?我可以在Xcode本地构建时删除状态栏,但一旦尝试使用Phonegap Build,它就会重新出现。
- 是否有配置首选项完全删除状态栏?
- 如果没有,是否可以将状态栏覆盖在应用程序视图顶部并将其设置为透明背景?
我不希望状态栏将应用程序视图下推20像素,这是现在的情况。
是否有可能在使用Phonegap Build 3.1时消除iOS7中的状态栏?我可以在Xcode本地构建时删除状态栏,但一旦尝试使用Phonegap Build,它就会重新出现。
我不希望状态栏将应用程序视图下推20像素,这是现在的情况。
从 Phonegap 3 开始,您现在可以通过 config.xml 定制 plist 文件。代码:
<gap:config-file platform="ios" parent="UIViewControllerBasedStatusBarAppearance" overwrite="true">
<false/>
</gap:config-file>
<gap:config-file platform="ios" parent="UIStatusBarHidden" overwrite="true"> <true/> </gap:config-file>
这来自于PhoneGap关于“全屏”偏好设置的文档:注意:可能不受新版本iOS的支持,但用户可以在phonegap构建中使用config-file元素,并将UIViewControllerBasedStatusBarAppearance设置为false并将UIStatusBarHidden设置为true。这在PhoneGap 3.6.3中已经正确工作了。 - DuncanMack将此功能添加到MainViewController.m文件中:
//fix not hide status on ios7
- (BOOL)prefersStatusBarHidden
{
return YES;
}
通常,您会编辑info.plist并添加此键:
<key>UIViewControllerBasedStatusBarAppearance</key><false/>
但是,由于在构建过程中无法执行此操作,您将需要添加一个插件:
https://github.com/phonegap-build/StatusBarPlugin/blob/master/README.md
随后执行以下操作:
StatusBar.hide();
点击XCode根项目文件夹下的"projectname-Info.plist"文件,您将看到一个用户界面,其中显示了键值对条目,您可以添加/删除键,添加新的键只需查找"Status bar is initially hidden"并将其值设置为"YES"。
我在config.xml中使用以下代码,可以完全移除状态栏,在iOS 7.0.3和7.0.4上测试通过,Phonegap版本为3.0.0(如果需要的话)。
<preference name="fullscreen" value="true" />
使用 Cordova,我需要做两件事情。
在使用 XCode 进行构建时,我需要设置 Target->Statusbar style 为 -> HIDDEN,这样可以在启动画面上隐藏状态栏。
同时,你还需要使用插件在设备准备就绪时隐藏它,否则它会重新出现。为此,请安装以下插件:
cordova plugin add org.apache.cordova.statusbar
并在 deviceready 中调用此函数:
StatusBar.hide();
只需安装状态栏插件(我正在使用Cordova 5.x):
cordova plugin add cordova-plugin-statusbar@1.0.1
在您的代码中,只需引用其全局变量并使用.hide():
StatusBar.hide()
<preference name="fullscreen" value="true" />
我正在开发Android。
我在你之前的问题中已经回答了如何彻底移除状态栏的方法(点击这里查看)
关键部分:
我成功地在Cordova 3.6 + iOS 7.1上实现了这个效果。考虑到iOS 7和8各自占有50%的市场份额,这个解决方案应该足够了。
我正在使用的插件是:org.apache.cordova.statusbar
我没有使用StatusBar.hide()
,而是使用了以下方法:
var hideSb = function(){
// StatusBar.hide;
cordova.exec(null, null, 'StatusBar', 'hide', ['Ehi', 'You']);
};