我想没有我正在开发的Cordova应用程序的状态栏.我快到了,状态栏没有显示在启动画面上.但是,在加载的第一页上,您会在隐藏状态栏之前看到状态栏的闪烁.
我已经检查了Xcode中的"隐藏状态栏"复选框.
我添加了cordova-plugin-statusbar
插件,在deviceready
回调中,我正在调用StatusBar.hide()
.
但是,当启动图像消失并且正在呈现第一页时,在显示页面之前会有一个状态栏闪烁.它只是一瞬间,但看起来很糟糕.
有人知道如何完全隐藏状态栏,而不是在被隐藏之前闪烁吗?
虽然我很晚才回答这个问题,但经过一整天的搜索,我完成了这项工作,所以我想与其他人分享.
根据文档(和jcesarmobile回答):
躲在启动时
在运行时,您可以使用下面的StatusBar.hide函数,但如果您希望在应用程序启动时隐藏StatusBar,则必须修改应用程序的Info.plist文件.
如果不存在,则添加/编辑这两个属性.将"状态栏最初隐藏"设置为"是",并将"查看基于控制器的状态栏外观"设置为"否".如果您在没有Xcode的情况下手动编辑它,则键和值为:
这需要您在info.plist
文件内修改应用程序的platforms/ios/
文件以添加以下行:
UIStatusBarHidden UIViewControllerBasedStatusBarAppearance
但不建议这样做,因为这将要求您保存在构建过程后可能会被覆盖的更改.
(如果您使用的是最新的Cordova CLI,请从此处查看更新2)
因此,作为干净的替代方案,您应该使用cordova-custom-config.根据文件:
我为什么要用它?
虽然可以通过Cordova/Phonegap设置一些平台首选项
config.xml
,但许多(特别是与较新的平台版本相关的)不能.一种解决方案是手动编辑platforms /目录中的配置文件,但是这不能在多个开发机器或CI环境中维护,后续构建操作可能会覆盖您的更改.这个插件试图通过使准备操作完成后附加平台特定的喜好来设置,允许解决这个间隙或者通过科尔多瓦设置的偏好被覆盖或其他未指明的喜好来设定.由于自定义首选项已输入
config.xml
,因此可以将它们提交到版本控制,因此可以应用于多个开发计算机,CI环境,并在构建之间进行维护,甚至可以删除并重新添加平台.
现在,您所要做的就是为Cordova应用程序运行以下命令:
cordova plugin add cordova-custom-config --save
并将其添加到块config.xml
下的文件中
:
有关更多信息,请参阅cordova-custom-config(版本> 5)插件
更新1(2018年2月20日)
如果您使用的是cordova-custom-config插件版本<5,则将custom-config-file
标签替换为config-file
.
https://github.com/dpa99c/cordova-custom-config#changes-in-cordova-custom-config5
更新2(2018年7月6日)从Cordova CLI 6开始,您现在不需要安装cordova-custom-config
插件来更改platforms/ios/*-info.plist
文件.Cordova CLI使用edit-config
标签内置了它的支持.所以,现在你可以简单地添加以下你的config.xml
下
:
构建Cordova应用程序时,此更改可能会失败,因为它将与platform/ios/ios.json
文件冲突.要解决此问题,您有两个选项(参考):
重新添加iOS平台:
ionic cordova platform remove ios ionic cordova platform add ios
https://issues.apache.org/jira/browse/CB-13564
使用platform/ios/ios.json
代替*-Info.plist
了在edit-config
文件中.所以你要添加的最终配置:
然后做:
cordova prepare ios
编辑:
从Cordova CLI 6.5.0开始,您可以使用edit-config
tag在info.plist中编写而无需插件.这应该在启动时隐藏状态栏
躲在启动时
在运行时,您可以使用下面的StatusBar.hide函数,但如果您希望在应用程序启动时隐藏StatusBar,则必须修改应用程序的Info.plist文件.
如果不存在,则添加/编辑这两个属性.将"状态栏最初隐藏"设置为"是",并将"查看基于控制器的状态栏外观"设置为"否".如果您在没有Xcode的情况下手动编辑它,则键和值为:
UIStatusBarHidden UIViewControllerBasedStatusBarAppearance
https://github.com/apache/cordova-plugin-statusbar