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

Posted

技术标签:

【中文标题】inapppbrowser或相机关闭后Phonegap状态栏重叠【英文标题】:Phonegap status bar overlaps after inapppbrowser or camera closed 【发布时间】:2017-07-20 13:06:24 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

@StefanRein 并等待 Cordova 上的新 ios 13 问题...github.com/apache/cordova-ios/issues/661【参考方案2】:

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

    $cordovaStatusbar.overlaysWebView(true);
    $cordovaStatusbar.overlaysWebView(false);

顺便说一句,我正在使用 ngCordova。

【讨论】:

【参考方案3】:

编辑:

这已在 StatusBar plugin 中修复

目前是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 的 master 分支作为插件。

然后运行类似这样的代码将其放入您的 Xcode 项目中:

ionic cordova build ios --no-build --prod

原帖

虽然在 javascript 中使用 truefalse 调用方法 overlaysWebView 有效,但我认为正确的方法是在视图消失时本地调用 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 或调用 [self setNeedsStatusBarAppearanceUpdate]; 时忽略 afterDelay 才有效。

【讨论】:

以上是关于inapppbrowser或相机关闭后Phonegap状态栏重叠的主要内容,如果未能解决你的问题,请参考以下文章

在墙壁(或障碍物)处停止相机移动[关闭]

MacOS - 检测相机何时打开/关闭

权限被拒绝后可以访问照片库和相机

Android:相机在接受拍摄照片后未关闭

如何在 Swift 中从相机或照片库加载图像 [关闭]

通过相机识别物体并做出反应[关闭]