我正在使用cordova状态栏插件,它在我打开inappbrowser或相机后会出现重叠的问题。
我已经尝试了以下方法:
<preference name="fullscreen" value="false" />
Add 20px margin, but that only works when the above scenario is encountered, else it shows blank 20px space (Used with cordova plugin)
我正在使用cordova状态栏插件,它在我打开inappbrowser或相机后会出现重叠的问题。
我已经尝试了以下方法:
<preference name="fullscreen" value="false" />
Add 20px margin, but that only works when the above scenario is encountered, else it shows blank 20px space (Used with cordova plugin)
StatusBar.overlaysWebView(true);
StatusBar.overlaysWebView(false);
$cordovaStatusbar.overlaysWebView(true);
$cordovaStatusbar.overlaysWebView(false);
顺便提一下,我正在使用ngCordova。
编辑:
这个问题已经在状态栏插件中得到了解决。
目前NPM注册表只有2.4.3版本
的cordova-plugin-statusbar
。修复已经落实到了Master分支
。
因此,对于Ionic用户来说,这意味着您需要像这样添加它(也许在之前删除它):
ionic cordova plugin add https://github.com/apache/cordova-plugin-statusbar#master
ionic cordova build ios --no-build --prod
原始帖子
在JavaScript中使用overlaysWebView
方法并传入true
和false
参数是可以工作的,但我认为更好的方式是在视图消失时本地调用setNeedsStatusBarAppearanceUpdate
方法。
CDVCamera.m
https://github.com/apache/cordova-plugin-camera/blob/master/src/ios/CDVCamera.m#L751
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self setNeedsStatusBarAppearanceUpdate];
}
现在只有viewWillAppear
方法被实现。
顺便说一句:也许有人知道为什么以下代码(在viewWillAppear
方法中)可以隐藏状态栏:
SEL sel = NSSelectorFromString(@"setNeedsStatusBarAppearanceUpdate");
if ([self respondsToSelector:sel]) {
[self performSelector:sel withObject:nil afterDelay:0];
}
[self setNeedsStatusBarAppearanceUpdate];
在viewWillDisappear
中,只有在使用performSelector且不带afterDelay参数或者调用[self setNeedsStatusBarAppearanceUpdate];
时才会生效。