我正在使用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)
答案 0 :(得分:0)
尝试执行以下操作以恢复隐藏的重叠:
StatusBar.overlaysWebView(true);
StatusBar.overlaysWebView(false);
答案 1 :(得分:0)
我已经在相机关闭后使用此代码解决了这个问题。
$cordovaStatusbar.overlaysWebView(true);
$cordovaStatusbar.overlaysWebView(false);
是的,我正在使用ngCordova。
答案 2 :(得分:0)
在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
中,仅当afterPerlay与performSelector一起使用或调用[self setNeedsStatusBarAppearanceUpdate];
时,它才有效。