在inapppbrowser或相机关闭后,Phonegap状态栏会重叠

时间:2017-03-01 09:19:50

标签: ios cordova phonegap-build statusbar inappbrowser

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

3 个答案:

答案 0 :(得分:0)

尝试执行以下操作以恢复隐藏的重叠:

StatusBar.overlaysWebView(true);
StatusBar.overlaysWebView(false);

答案 1 :(得分:0)

我已经在相机关闭后使用此代码解决了这个问题。

    $cordovaStatusbar.overlaysWebView(true);
    $cordovaStatusbar.overlaysWebView(false);
是的,我正在使用ngCordova。

答案 2 :(得分:0)

在JavaScript中使用overlaysWebViewtrue调用方法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];时,它才有效。