Включить строку состояния в шаблонах JavaScript Windows Phone для Visual Studio 2013

#javascript #windows-phone #winjs #windows-phone-8.1

#javascript #windows-phone #winjs #windows-phone-8.1

Вопрос:

Кто-нибудь знает, как включить строку состояния (рисунок) в приложении javascript для Windows Phone 8.1? Я использую сводный шаблон javascript в Visual Studio 2013 с обновлением 2.

введите описание изображения здесь

Комментарии:

1. мне потребовалось некоторое время, чтобы найти этот вопрос, потому что сначала я искал «строку заголовка», «панель телефона», «панель действий», «панель приложений», «панель приложений» .. но оказывается, что это «строка состояния» или, скорее, «строка состояния»: S

Ответ №1:

Например, вам нужно будет добавить немного JavaScript в готовую функцию страницы.

Сначала получите строку состояния для текущего представления. Чем решать, что с ним делать:

 var s = Windows.UI.ViewManagement.StatusBar.getForCurrentView();
s.showAsync(); // shows the statusbar
 

Подробнее о строке состояния можно найти в MSDN.

Ответ №2:

ответ @Sorskoot мне очень помог, но все же я просто трачу час на поиск ТОГО, КАК ИЗМЕНИТЬ ЦВЕТ ФОНА строки СОСТОЯНИЯ. Поэтому я поделюсь (поскольку включение строки состояния и настройка ее цвета обычно сочетаются):

Приведенный ниже код показывает строку состояния (или, как следует из названия, отправляет запрос в очередь сообщений для этого).

 var s = Windows.UI.ViewManagement.StatusBar.getForCurrentView();
s.showAsync(); 
 

Если вы попробуете настроить цвета следующим образом

 // THIS IS WRONG
s.backgroundColor = 'red';
s.backgroundColor = '#A65959';
 

это НЕ сработает, выдав вам ошибку:
0x800a13ec - JavaScript runtime error: Could not convert object to struct: object missing expected property 'a'

Это происходит потому, что s.backgroundColor — это не объект HTML, а объект времени выполнения WinRT, поэтому нам нужно использовать «цветовую» структуру WinRT, которая имеет мало общего с концепциями цвета HTML / JS.

Но сначала давайте сначала исправим прозрачность (непрозрачность). По умолчанию слой bg панели полностью прозрачный. Установите его непрозрачность на 1.0, чтобы сделать его полностью непрозрачным.

TL; DR;

 // THIS IS RIGHT
s.backgroundOpacity = 0.99; 
s.backgroundColor = Windows.UI.ColorHelper.fromArgb(255, 0xA6, 0x59, 0x59);
s.foregroundColor = Windows.UI.Colors.lightGray;
 

Выше мы использовали вспомогательный класс для построения цветовой структуры WinRT. Имейте в виду, что непрозрачность
находится в диапазоне 0-255 в аргументах помощников. Однако в s.backgroundOpacity он
плавает в диапазоне [0..1] >:o

Там есть куча предопределенных цветовых констант Windows.UI.Colors , но имейте в виду camelCasing (например. lightGray ), который отличается от соглашения об именовании цветов HTML / JS)