我正在使用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);
btw,我正在使用ngcordova。
编辑:
这是在状态栏插件中修复的
当前cordova-plugin-statusbar
的NPM registry has only the version 2.4.3
。固定降落在Master branch
基本上对于离子人来说,这意味着您需要这样添加(也许之前删除):
ionic cordova plugin add https://github.com/apache/cordova-plugin-statusbar#master
这为您安装了GitHub的主分支。
然后运行这样的东西将其输入您的Xcode项目:
ionic cordova build ios --no-build --prod
原始帖子
在使用true
和false
的方法overlaysWebView
中调用JavaScript时,我认为正确的方法是在视图消失时将setNeedsStatusBarAppearanceUpdate
方法拨打。
CDVCamera.m
https://github.com/apache/cordova-plugin-camera/blob/master/src/src/ios/cdvcamera.m#l751
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self setNeedsStatusBarAppearanceUpdate];
}
目前仅实现viewWillAppear
。
btw:也许有人知道为什么隐藏过渡与以下代码一起工作(在viewWillAppear
方法中):
SEL sel = NSSelectorFromString(@"setNeedsStatusBarAppearanceUpdate");
if ([self respondsToSelector:sel]) {
[self performSelector:sel withObject:nil afterDelay:0];
}
,但没有以下内容:
[self setNeedsStatusBarAppearanceUpdate];
和在viewWillDisappear
中,仅当performSelector或[self setNeedsStatusBarAppearanceUpdate];
被遗漏时,它才能起作用。