我正在尝试自定义Cordova InAppBrowser以在webView中添加上边距。
我想使用应用内浏览器,但在屏幕顶部显示一个带有后退按钮的50px导航栏,可以关闭InAppBrowser。
目前正在使用iOS版本,我正在尝试将视图的原点更改为y = 50,但它无效。
CGRect theFrame = self.inAppBrowserViewController.view.frame;
theFrame.origin.y = 50;
theFrame.size.height = theFrame.size.height - 50;
self.inAppBrowserViewController.view.frame = theFrame;
它总是给我留下视图底部的自由空间。
答案 0 :(得分:3)
我发现Cordova-OverAppBrowser正在很好地完成这项工作,至少对于Android https://github.com/etabard/Cordova-OverAppBrowser(支持OSX,但我还没有对其进行测试)。
您可以创建新的浏览器并指定X,Y,宽度和高度。最后一个参数是动画淡出:
var oab = new OverAppBrowser($stateParams.input, 0, 50, 400, 400, true);
如果您使用离子,请务必在离开视图时关闭浏览器窗口:
$scope.$on('$ionicView.leave', function() {
oab.close();
});
直接从github获取它是我唯一可行的解决方案:
cordova plugin add https://github.com/etabard/Cordova-OverAppBrowser
答案 1 :(得分:1)
请参阅rePositionViews
- (void) rePositionViews {
if ([_browserOptions.toolbarposition isEqualToString:kInAppBrowserToolbarBarPositionTop]) {
[self.webView setFrame:CGRectMake(self.webView.frame.origin.x, TOOLBAR_HEIGHT, self.webView.frame.size.width, self.webView.frame.size.height)];
[self.toolbar setFrame:CGRectMake(self.toolbar.frame.origin.x, [self getStatusBarOffset], self.toolbar.frame.size.width, self.toolbar.frame.size.height)];
}
}
此方法在createViews后调用以重置位置。这是您的更改重置的位置。注意这一行
[self.toolbar setFrame:CGRectMake(self.toolbar.frame.origin.x, [self getStatusBarOffset], self.toolbar.frame.size.width, self.toolbar.frame.size.height)];
您看到它实际上是添加了一个上边距来解决iOS 7的状态栏高度问题。利用这一点并将其抵消一点。
答案 2 :(得分:0)
你应该在打开窗口时设置toolbar = yes并获得你需要的东西
window.open(url, _blank, 'toolbar=yes');