2015-08-13 3 views

ответ

3

Наконец проблема решена.

в app.js

$ionicPlatform.ready(function() { 
    if (window.cordova && $cordovaKeyboard) { 
    $cordovaKeyboard.hideAccessoryBar(true); 
    } 
    if (window.StatusBar) { 
    StatusBar.styleDefault(); 
    } 
} 

и, если это не решает проблему. В index.html, cordova.js следует импортировать в самое последнее время.

<head> 
    ... 

    <script src="cordova.js"></script> 
</head> 

Это решает мою проблему.

+0

он не работал для меня. – user3625547

+0

это не сработало для меня. – Chocksmith

+0

он не работает на новейшей ионной версии. Проверьте дату. –

11

От: http://www.sitepoint.com/5-ionic-app-development-tips-tricks/

Ionic имеет специфические классы для борьбы с этим - платформы КСН и платформы-Cordova. Предварительно созданные элементы Ionic предназначены для этих классов и добавляют верхнюю границу 20px к кнопкам в вашем заголовке, чтобы компенсировать эти ситуации. Чтобы мои собственные пользовательские элементы делали то же самое, я придерживаюсь одного и того же шаблона. Для моего .search-bar выше я добавляю маржу, если у нас есть класс body.platform-ios.platform-cordova: not (.fullscreen). Пример:

.platform-ios.platform-cordova:not(.fullscreen) .search-bar { 
    margin-top: 20px; 
} 

Это должен быть правильный ответ.

+0

Чтобы сделать код более надежным, используйте переменную, которую предоставляет ионная: margin-top: $ ios-statusbar-height; – fikkatra

3

Решение с StatusBar.styleDefault(); не работает для меня, но вызов StatusBar.overlaysWebView(false) выполнил эту работу.

Первый скриншот интерфейса приложения перед вызовом StatusBar.overlaysWebView(false), вы можете увидеть, что в строке состояния IOS находится над приложением и пользователь не может нажать на всю область кнопки меню:

iOS status bar is over the app and user cannot click the whole area of menu button

Теперь, когда я не называйте StatusBar.overlaysWebView(false), строка состояния IOS больше не над кнопкой меню:

iOS status bar is no longer over the menu button

3

Я застрял на одной и той же задачи в течение длительного времени, и ни один O Эти решения работали для меня. Наконец, чтобы получить строку состояния с перекрытием по мнению приложения, я добавил следующее preference к моему config.xml файл и вуаля:

<preference name="StatusBarOverlaysWebView" value="false" /> 
    <preference name="StatusBarBackgroundColor" value="#000000" /> 
    <preference name="StatusBarStyle" value="lightcontent" /> 

Это требует конечно плагин: cordova-plugin-statusbar "StatusBar".

Надеюсь, это поможет.

+0

Newb вопрос предупреждение. Где будет вставлен StatusBar.overlaysWebView (false)? – mediaguru

+0

Я добавил указанные выше параметры предпочтений в файле config.xml, который находится в основе вашего проекта. – Neel

+0

Я добавил плагин: плагин cordova добавляет кордову-plugin-statusbar, затем добавляет предпочтения, но все еще имеет перекрытие. Хотя я смотрю только на ионную подачу не на устройство. – mediaguru

0

Этот код работает для меня с ионной 3 (3.7.1) Открыть App.scss в app папку добавьте этот код:

.platform-ios 
{ 
    page-home { // replaced by your page HERE 
    top: 20px !important; 
    } 
}