iOS 状态栏将 InAppBrowser 向下推
iOS Status Bar pushing InAppBrowser down
这是环境:
- iOS 11
- Cordova 8.0.0
- cordova-plugin-inappbrowser 3.0.0 "InAppBrowser"
- cordova-plugin-statusbar 2.4.2 "StatusBar"
状态栏将InAppBrowser下推并隐藏显示网页的20px。这在 iOS 10 中运行良好。
经过几天的研究,我在这个页面上找到了答案:
CB-14024 Take into account statusbar height when toolbar is enabled
基本上这是解决方法:
在 CDVInAppBrowser.m 中查找 rePositionViews 并进行相应替换。
- (void) rePositionViews {
if ((_browserOptions.toolbar) && ([_browserOptions.toolbarposition isEqualToString:kInAppBrowserToolbarBarPositionTop])) {
[self.webView setFrame:CGRectMake(self.webView.frame.origin.x, TOOLBAR_HEIGHT + [self getStatusBarOffset], self.webView.frame.size.width, self.webView.frame.size.height - [self getStatusBarOffset])];
[self.toolbar setFrame:CGRectMake(self.toolbar.frame.origin.x, [self getStatusBarOffset], self.toolbar.frame.size.width, self.toolbar.frame.size.height)];
}
}
- iOS 11
- Cordova 8.0.0
- cordova-plugin-inappbrowser 3.0.0 "InAppBrowser"
- cordova-plugin-statusbar 2.4.2 "StatusBar"
状态栏将InAppBrowser下推并隐藏显示网页的20px。这在 iOS 10 中运行良好。
经过几天的研究,我在这个页面上找到了答案:
CB-14024 Take into account statusbar height when toolbar is enabled
基本上这是解决方法: 在 CDVInAppBrowser.m 中查找 rePositionViews 并进行相应替换。
- (void) rePositionViews {
if ((_browserOptions.toolbar) && ([_browserOptions.toolbarposition isEqualToString:kInAppBrowserToolbarBarPositionTop])) {
[self.webView setFrame:CGRectMake(self.webView.frame.origin.x, TOOLBAR_HEIGHT + [self getStatusBarOffset], self.webView.frame.size.width, self.webView.frame.size.height - [self getStatusBarOffset])];
[self.toolbar setFrame:CGRectMake(self.toolbar.frame.origin.x, [self getStatusBarOffset], self.toolbar.frame.size.width, self.toolbar.frame.size.height)];
}
}