IOS 11.2 Cordova Inappbrowser在方向变化时添加了灰色块

时间:2017-10-10 09:48:43

标签: ios cordova statusbar inappbrowser phonegap

我的任务是创建和使用Cordova Inappbrowser的应用程序。 我正在使用官方的inappbrowser插件和状态栏插件。所有插件都是最新的!

当设备的方向改变时,会出现问题,左上角会出现灰色块。我已经使用了XCode的模拟器和环境检查工具来尝试找出灰色块的内容,没有运气它只是不想被检查。我已经测试了一些iPhone 6和7+设备以及iPad mini 4,它仍然出现在设备上。

我的config.xml代码隐藏状态栏

<platform name="ios">
    <config-file parent="UIStatusBarHidden" platform="ios" target="*-Info.plist">
        <true />
    </config-file>
    <config-file parent="UIViewControllerBasedStatusBarAppearance" platform="ios" target="*-Info.plist">
        <true />
    </config-file>
    <allow-intent href="itms:*" />
    <allow-intent href="itms-apps:*" />
</platform>

和我的inappbrowser代码

    var url = "https://imgur.com/";
    var ref = cordova.InAppBrowser.open(url, '_blank', 'location=no,toolbar=no');

我的第一个问题是问题与inappbrowser中使用的URL有关,但我测试了一些网站,每个网站都产生了相同的结果。

我正在使用状态栏插件隐藏状态栏,这是有效的。

App on Start up. no grey block

和继承人在进行方向改变时注意到灰色块。

enter image description here

2 个答案:

答案 0 :(得分:0)

将此添加到CDVInAppBrowserNavigationController实现中的CVDInAppBrowser.m,可以解决这个问题:

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
    CGRect frame = [UIApplication sharedApplication].statusBarFrame;
    [_bgToolbar setFrame:CGRectMake(frame.origin.x, frame.origin.y, size.width, frame.size.height)];
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
}

变量_bgToolbar是viewDidLoad方法中初始化的变量。

希望这有帮助!

答案 1 :(得分:0)

由于我将永远不会使用状态栏,因此将CVDInAppBrowser.m顶部的状态栏高度设置为0。

#define    STATUSBAR_HEIGHT 0 // 21.0