Cordova InAppBrowser Top Margin

时间:2014-05-21 13:57:43

标签: cordova inappbrowser cordova-plugins

我正在尝试自定义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;

它总是给我留下视图底部的自由空间。

3 个答案:

答案 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');