当前位置:  开发笔记 > 前端 > 正文

如何使用Cordova完全隐藏iOS中的状态栏?

如何解决《如何使用Cordova完全隐藏iOS中的状态栏?》经验,为你挑选了2个好方法。

我想没有我正在开发的Cordova应用程序的状态栏.我快到了,状态栏没有显示在启动画面上.但是,在加载的第一页上,您会在隐藏状态栏之前看到状态栏的闪烁.

我已经检查了Xcode中的"隐藏状态栏"复选框.

我添加了cordova-plugin-statusbar插件,在deviceready回调中,我正在调用StatusBar.hide().

但是,当启动图像消失并且正在呈现第一页时,在显示页面之前会有一个状态栏闪烁.它只是一瞬间,但看起来很糟糕.

有人知道如何完全隐藏状态栏,而不是在被隐藏之前闪烁吗?



1> Shashank Agr..:
原始答案

虽然我很晚才回答这个问题,但经过一整天的搜索,我完成了这项工作,所以我想与其他人分享.

根据文档(和jcesarmobile回答):

躲在启动时

在运行时,您可以使用下面的StatusBar.hide函数,但如果您希望在应用程序启动时隐藏StatusBar,则必须修改应用程序的Info.plist文件.

如果不存在,则添加/编辑这两个属性.将"状态栏最初隐藏"设置为"是",并将"查看基于控制器的状态栏外观"设置为"否".如果您在没有Xcode的情况下手动编辑它,则键和值为:

这需要您在info.plist文件内修改应用程序的platforms/ios//-Info.plist文件以添加以下行:

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文件冲突.要解决此问题,您有两个选项(参考):

选项1(过度杀伤但有效)

重新添加iOS平台:

ionic cordova platform remove ios
ionic cordova platform add ios

https://issues.apache.org/jira/browse/CB-13564

选项2(推荐但不适用于我)

使用platform/ios/ios.json代替*-Info.plist了在edit-config文件中.所以你要添加的最终配置:


    


    

然后做:

cordova prepare ios


这是维护可复制构建的最佳解决方案!
cordova-custom-config是必经之路,就像魅力一样!非常感谢,因为我几个月来一直在手动编辑info.plist。
请注意,````config-file```标签中不需要`````platform ="ios"```属性,如果它已经在``````块.

2> jcesarmobile..:

编辑:

从Cordova CLI 6.5.0开始,您可以使用edit-configtag在info.plist中编写而无需插件.这应该在启动时隐藏状态栏


    


    

躲在启动时

在运行时,您可以使用下面的StatusBar.hide函数,但如果您希望在应用程序启动时隐藏StatusBar,则必须修改应用程序的Info.plist文件.

如果不存在,则添加/编辑这两个属性.将"状态栏最初隐藏"设置为"是",并将"查看基于控制器的状态栏外观"设置为"否".如果您在没有Xcode的情况下手动编辑它,则键和值为:

UIStatusBarHidden

UIViewControllerBasedStatusBarAppearance

https://github.com/apache/cordova-plugin-statusbar

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有