Cordova:如何在启动画面上隐藏状态栏?

9
我正试图使用Cordova删除我的应用程序中的状态栏。我尝试了<preference name="Fullscreen" value="true" />,但是在iOS7中似乎不起作用。(在iOS6上则会留下黑色间隙。)
此后,我一直在使用StatusBar插件,并在设备准备好时只需执行`StatusBar.hide();`,但这将无法在启动屏幕上隐藏状态栏。是否有一种方法可以在整个iOS7应用程序中隐藏状态栏,而不必每次进行Cordova构建时都要重写它?谢谢。
6个回答

9

并不是完整的答案让Cordova自动执行。但是我进入了iOS构建的.plist文件并添加了以下内容:

UIStatusBarHidden = true
UIViewControllerBasedStatusBarAppearance = false

这样它就能正确运行,而且在执行构建时不会被 Cordova 覆盖,所以现在应该可以使用。

如果有人发现或知道更好的强制设置方式,请随时发布并让我知道。我将更新此答案或在下次注意到时选择您的答案。谢谢!


6

状态栏

要在iOS 7中移除状态栏,请在plist文件中使用以下条目。

<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

在XCode的配置中,以下内容可以达到相同的效果。
set Status bar is initially hidden = YES
add row: View controller-based status bar appearance = NO

5
不要浪费时间,只需在启动时隐藏状态栏即可。

我不明白为什么这会被踩。对我来说完美地运作了。只需一个点击就完成了。 - Timo Ernst
2
@Timo 这个解决方案与在 plist 文件中将 UIStatusBarHidden 设置为 true 相同。你会发现它们是同步的。 - thundertrick
2
很高兴知道这是一个图形用户界面选项。我建议您编辑您的答案,删除提到浪费时间的内容。 - chasm

3

更新:

我们还可以直接从config.xml中注入info.plist。

<config-file parent="UIStatusBarHidden" platform="ios" target="*-Info.plist">
    <true />
</config-file>
<config-file parent="UIViewControllerBasedStatusBarAppearance" platform="ios" target="*-Info.plist">
     <false />
</config-file>

第一个配置将在启动画面/启动屏幕上隐藏状态栏。第二个配置将在启动画面/启动屏幕后隐藏状态栏。


它对我有效,但我是这样使用的。 如果您想编辑config.xml文件并将其注入为合并。我使用了这个方法,对我很有效。<edit-config file="*-Info.plist" mode="merge" target="UIStatusBarHidden"><true /></edit-config><edit-config file="*-Info.plist" mode="merge"target="UIViewControllerBasedStatusBarAppearance"><false /></edit-config> - Mustak_Talukder

0

你看过下面的内容吗:

http://ionicframework.com/tutorials/fullscreen-apps/

首先,我们需要注意这仅适用于 Cordova(建议使用 v3.3.1)或其他本地 UIWebView 封装。如果我们使用 Cordova,则需要安装一个插件:
$ cordova plugin add org.apache.cordova.statusbar

然后,我们将使用Ionic的平台服务来监听设备准备就绪事件并移除状态栏:
angular.module('myApp', ['ionic'])

.controller('MyCtrl', function($scope, Platform) {
  Platform.ready(function() {
    // hide the status bar using the StatusBar plugin
    StatusBar.hide();
  });
});

是的,正在做这件事。只是使用 Backbone 而不是 Iconic/Angular。启动屏幕在 deviceready 之前加载,因此状态栏只会在该屏幕后隐藏。 - gokujou
我发现这只是将文本设置为白色,电池仍然显示。 - Ben Taliadoros

-1

我使用Ionic和Angular从iOS应用程序中移除状态栏

文件名:config.xml

步骤1:在XML文件中添加代码

步骤2:导入插件并在您的js文件中实现它。

<platform name="ios">

<edit-config file="*-Info.plist" mode="merge" target="UIStatusBarHidden">
<true />
</edit-config>

<edit-config file="*-Info.plist" mode="merge"target="UIViewControllerBasedStatusBarAppearance">
<false />
</edit-config>

</platform>

针对您的 .js/.ts 文件

隐藏和显示状态栏

我使用了这个插件链接:https://github.com/apache/cordova-plugin-statusbar

import { StatusBar } from '@ionic-native/status-bar/ngx';

constructor( private statusBar: StatusBar ){}

this.StatusBar.overlaysWebView(true);

this.StatusBar.hide();


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接