2016-12-20 3 views
0

У меня есть ионное приложение 1, которое использует $ cordovaCamera для извлечения фотографии от пользователя. Как ни странно, после того, как камера открыта (неважно, снимает ли пользователь изображение, отменяет или выбирает его из библиотеки), приложение отображается неправильно после его закрытия. Строка состояния накладывает верхнюю часть представления, а нижняя часть представления переполняет окно просмотра. Однако, если вы переориентируете устройство (перейдите от портрета к пейзажу), он исправит себя.Ионное приложение рендеринга неправильно после открытия камеры

Есть ли способ заставить приложение перерисовать вручную?

Дополнительная информация о самой ошибке: я создал новое приложение для ионной 1 отдельно и скопировал код камеры точно и у него нет той же проблемы. Те же версии ионного, углового, ngCordova и плагина камеры. Поэтому я считаю, что фактическая проблема с рендерингом специфична для моего приложения. Однако, после целого дня беспорядка, я не могу понять, что происходит с моей жизнью.

+0

Я столкнулся с такой же проблемой. Вы нашли решение? Помог ли ответ ниже? –

+0

Я сделал! Всего пару дней назад, по сути. Я просто разместил его как ответ, чтобы быть полным –

ответ

1

взглянуть на этот плагин: cordova-plugin-hidden-statusbar-overlay

просто установить его, и после вызова камеры, запустите этот код:

window.plugin.statusbarOverlay.hide();

1

Ответ закончился тем, что было довольно easy: УДАЛИТЬ плагин состояния.

У меня создалось впечатление, что плагин состояния был необходим, чтобы он появился вообще, но это не так. Плагин StatusBar позволяет вам стилизовать его, но с iOS 9 вы можете выбрать только 2 варианта.

  1. полностью удалите плагин состояния. Не забудьте отредактировать свой bower.json, config.xml, код инициализации в вашем ионном приложении, который устанавливает значения по умолчанию для StatusBar и т. Д.
  2. Добавьте дополнение или маржу вверху вашего приложения, когда элемент body имеет класс platform-ios , В Apple Developer Docs:

Неясный контент в строке состояния. По умолчанию фоновый индикатор строки состояния прозрачен, что позволяет показывать содержимое ниже. Сохраняйте строку состояния читаемой и не подразумевайте, что контент за ней интерактивен. Для этого есть несколько общих методов: 1) Используйте панель навигации в своем приложении, которая автоматически отображает фон состояния и обеспечивает, чтобы содержимое не отображалось в строке состояния. 2) Отобразите собственное изображение, например градиент или сплошной цвет, за панель состояния. 3) Примените смазывание к содержимому, расположенному за панель состояния.

То, что вам должно получиться, - это тот же самый вид без плагина.

2

У нас была такая же проблема с версией Cordova-плагин-STATUSBAR: 2.2.1
Решение было довольно просто. Мы понизили эту зависимость до версии 2.2.0, и все снова работало как ожидалось.

Чтобы использовать точную версию плагина Cordova, укажите его в config.xml вашего проекта, как в примере ниже:

<plugin name="cordova-plugin-statusbar" spec="2.2.0"/>

Не забудьте удалить ./platforms и ./plugins папки и запустить cordova prepare после понижения версии плагина.