Белая строка состояния в iOS Phonegap?

как сделать верхнюю строку состояния полупрозрачной с белым текстом в Phonegap 3.1.0 для iOS7?

App отлично смотрится в мобильном Safari, но когда я пытаюсь запустить его в тексте Phonegap, верхняя панель является белой только при загрузке приложения, после чего она черная, независимо от того, какие настройки я устанавливаю в конфигурации проекта.

Прямо сейчас на веб-странице есть <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">, а "Стиль строки состояния" = "Черный прозрачный" в XCode... не помогает.

Помощь Pls!

Ответ 1

Вы можете сделать это без каких-либо метатегов или редактировать что-либо в XCode.

Сначала установите плагин с помощью командной строки через CLI:

cordova plugin add cordova-plugin-statusbar

Затем вы можете использовать эти настройки для создания строки состояния (в config.xml):

<preference name="StatusBarOverlaysWebView" value="true" />
<preference name="StatusBarStyle" value="lightcontent" />

Это даст вам прозрачную панель в iOS 7 с белым текстом. Для других опций проверьте http://plugins.cordova.io/#/package/org.apache.cordova.statusbar

Ответ 2

Наконец, я нашел решение.

Убедитесь, что у вас есть следующее: В вашем index.html есть следующий метатег:

<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">

В Xcode откройте [YourPrjectName].plist и добавьте следующие строки:

"Стиль строки состояния" = "Прозрачный черный стиль (альфа 0,5)" И
"Просмотр состояния строки состояния на основе контроллера" = "НЕТ"

Без второй строки внутри не будет работать (на самом деле это было проблемой в моем случае).

Ответ 5

Добавьте этот

function onDeviceReady() {
  if (parseFloat(window.device.version) === 7.0) {
      document.body.style.marginTop = "20px";
   }
 }

document.addEventListener('deviceready', onDeviceReady, false);

Ошибка строки состояния в iOS7

http://coenraets.org/blog/2013/09/phonegap-and-cordova-with-ios-7/

Ответ 6

Я решил, что более современный ответ может помочь кому-то здесь, это работает в кордове 3.7+ и iOS 8.x и отрицает необходимость в дополнительном плагине.

В файле проекта plist убедитесь, что "Строка состояния изначально скрыта" и "Просмотр состояния панели состояния на основе контроллера" установлены на "НЕТ"

Затем в MainViewController.m внутри - (void)viewDidLoad добавьте:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

или

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];

для белого или черного текста в строке состояния.

В качестве альтернативы, чтобы полностью скрыть, установите оба атрибута plist выше YES, которые, похоже, работают для его скрытия.