Верхнее поле Cordova InAppBrowser

я пытаюсь настроить Cordova InAppBrowser, чтобы добавить верхнее поле в webView.

Я хотел бы использовать браузер в приложении, но в верхней части экрана отображается панель навигации размером 50 пикселей с кнопкой «Назад», чтобы закрыть 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;

Это всегда оставляет мне свободное пространство внизу экрана.


person Ercole    schedule 21.05.2014    source источник
comment
Для этого есть билет, но, похоже, это не слишком важно для Кордовы. основная команда (однако кажется, что многие люди хотели бы иметь эту функцию именно для отображения верхнего/нижнего колонтитула)   -  person jakub.g    schedule 18.05.2016
comment
Связано: stackoverflow.com/q/28433766/245966   -  person jakub.g    schedule 18.05.2016


Ответы (3)


Я обнаружил, что Cordova-OverAppBrowser неплохо справляется со своей задачей, по крайней мере, для Android https://github.com/etabard/Cordova-OverAppBrowser (поддерживается OSX, но я еще не проверял).

Вы можете создать новый браузер и указать X, Y, ширину и высоту. Последний параметр — это плавная анимация:

var oab = new OverAppBrowser($stateParams.input, 0, 50, 400, 400, true);

Если вы используете ionic, не забудьте закрыть окно браузера при выходе из представления:

$scope.$on('$ionicView.leave', function() {
    oab.close();
});

Получение его непосредственно из github было для меня единственным рабочим решением:

cordova plugin add https://github.com/etabard/Cordova-OverAppBrowser
person paul    schedule 10.11.2015

См. 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. Воспользуйтесь этим и компенсируйте это немного больше.

person initialxy    schedule 25.03.2015

вы должны установить toolbar=yes при открытии окна и получить то, что вам нужно

window.open(url, _blank, 'toolbar=yes');
person Chepaki    schedule 23.05.2014
comment
Это просто открытие полноэкранного режима InAppBrowser, как обычно, с помощью панели инструментов. Но я хотел бы добавить верхнее поле, чтобы показать исходный вид моего приложения. - person Ercole; 28.05.2014