#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)