InapppBrowser或相机关闭后,PhoneGap状态栏重叠



我正在使用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-statusbarNPM 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

原始帖子

在使用truefalse的方法overlaysWebView中调用JavaScript时,我认为正确的方法是在视图消失时将setNeedsStatusBarAppearanceUpdate方法拨打。

CDVCamera.mhttps://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];被遗漏时,它才能起作用。

最新更新