Активация через всплывающее уведомление (HTML)
[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]
Примечание Не используете JavaScript? См. раздел Как выполнить активацию через всплывающее уведомление (XAML).
В этом разделе демонстрируются действия, которые вам необходимо выполнить в ответ на щелчок пользователем всплывающего уведомления, отправленного из вашего приложения. Реакцией вашего приложения должно быть отображение пользовательского интерфейса для конкретного всплывающего уведомления. Обычно приложение должно запускаться в контексте или представлении, связанном с содержимым всплывающего уведомления. Это делается с помощью включенной в полезные данные всплывающего уведомления строки активации, которая затем передается в ваше приложение как аргумент в событии активации. Здесь показан базовый поток данных:
- Приложение или веб-служба создает и отправляет полезные данные всплывающего уведомления, включая строку запуска
- Всплывающее уведомление создается и/или отправляется в Центр поддержки
- Пользователь выбирает всплывающее уведомление (щелчком или касанием)
- Запускается активированное событие
- Обработчик активированных событий приложения считывает строку запуска
- Приложение запускается с использованием параметров, содержащихся в строке запуска
Примечание Для тестирования возможностей кода всплывающих уведомлений в Microsoft Visual Studio необходимо использовать параметр отладки "Локальный компьютер" или "Удаленный компьютер" на компьютере с архитектурой Windows x86, x64 или среды выполнения Windows. Использовать функцию отладки имитатора Visual Studio невозможно — код будет компилироваться и выполняться в имитаторе, но всплывающее уведомление не отобразится.
Что необходимо знать
Технологии
- Windows Runtime
Необходимые условия
Для понимания этого раздела вам понадобится:
- Хорошее знание понятий и терминов всплывающих уведомлений. Подробнее см. в разделе Общие сведения о всплывающих уведомлениях.
- Чтобы отправлять или получать всплывающие уведомления, в манифесте вашего приложения параметр Всплывающие уведомления должен иметь значение "true". В редакторе манифестов Microsoft Visual Studio необходимо выбрать значение "Yes". Дополнительные сведения см. в разделах Краткое руководство: создание стандартной плитки с помощью редактора манифестов Visual Studio и Явное согласие на всплывающие уведомления.
- Хорошее понимание XML и работы с XML через API модели DOM.
- Хорошее понимание схемы XML всплывающих уведомлений. Подробнее об этом см. в Схема всплывающих уведомлений.
- Умение создавать простые приложения Магазина Windows на JavaScript с помощью API среды выполнения Windows. Дополнительные сведения см. в разделе Создание первого приложения Магазина Windows на JavaScript.
Инструкции
Этап 1: Включить данные активации в ваши полезные данные всплывающего уведомления
Когда ваше приложение активируется через всплывающее уведомление, ему необходимо передать информацию, связанную с содержимым уведомления. Затем это содержимое может быть отражено путем запуска приложения в связанном представлении вместо представления по умолчанию. Когда ваше приложение или веб-служба создает всплывающее уведомление, для указания этой информации активации используется атрибут launch. Эту строку можно считать аналогом аргументов командной строки. Строка может содержать любую информацию, которая может интерпретироваться приложением, при условии, что в результате полезные данные XML не станут недопустимыми. Обратите внимание, что общий размер полезных данных XML всплывающего уведомления, включая строку запуска, не может превышать 5 КБ.
Если вы не добавите строку атрибута запуска, ваше приложение не сможет нормально запуститься, и пользователю придется запустить его с начального экрана.
В данном шаге используется ранее созданный объект XmlDocument с именем toastXml
. В этом примере создается атрибут launch, ему присваивается строковое значение, а затем он добавляется в полезные данные XML всплывающего уведомления. Инструкции по созданию полного всплывающего уведомления см. в разделе Краткое руководство: отправка всплывающих уведомлений.
var launchAttribute = toastXml.createAttribute("launch");
launchAttribute.value = "{\"myContext\":\"12345\"}";
var toastNode = toastXml.selectSingleNode("/toast");
toastNode.attributes.setNamedItem(launchAttribute);
Приведенный выше код приводит к появлению следующего кода XML, в зависимости от содержимого элемента visual, который определен в разделе Краткое руководство: отправка всплывающих уведомлений.
<toast launch="{"myContext":"12345"}">
<visual>
<binding template="ToastImageAndText01">
<image id="1" src="ms-appx:///images/redWide.png" alt="red graphic"/>
<text id="1">Hello World!</text>
</binding>
</visual>
</toast>
Этап 2: Регистрация для события активации
Когда пользователь щелкает ваше всплывающее уведомление или выбирает его касанием, запускается событие activated. Ваше приложение должно зарегистрироваться с помощью функции addEventListener, чтобы получать информацию о событии.
Примечание Если вы не включили строку атрибута запуска в свое всплывающее уведомление, а ваше приложение уже выполняется при выборе уведомления, событие activated не запускается.
WinJS.Application.addEventListener("activated", onActivatedHandler, false);
Этап 3: Реализуйте обработчик для события активации своего всплывающего уведомления
Ваш зарегистрированный обработчик событий получает все события активации независимо от типа активации. Свойство kind, включенное в уведомление о событии, обозначает тип события активации. Когда пользователь щелкает всплывающее уведомление, которое имеет атрибут launch, указанный в его полезных данных XML, запускается событие активации типа launch. Это же событие возникает, когда пользователь касается основной или вспомогательной плитки приложения.
Строка активации, указанная с помощью атрибута launch на этапе 1, включена в свойство arguments уведомления о событии.
В этом примере показана схема обработчика событий активации, зарегистрированного на этапе 2.
function onActivatedHandler(args) {
if (args.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {
var launchString = args.detail.arguments;
// Handle activation as required for your app, using the launch string.
}
}
Связанные разделы
Примеры всплывающих уведомлений
Windows.UI.Notifications API namespace
Общие сведения о всплывающих уведомлениях
Руководство и контрольный список для всплывающих уведомлений
Краткое руководство: отправка всплывающих уведомлений