Главная » C#, Windows Runtime, XAML, Разработка для Windows 8 » Использование всплывающих уведомлений Metro

0

Всплывающее уведомление представляет собой краткое сообщение,  которое содержит важные данные для пользователя приложения. Данный тип сообщения подразумевает скорейшее   уведомление   пользователя   об   интересующем событии открытия приложения для  получения более детальное информации. Оно  может  отображаться,  когда  пользователь не  работает  с  приложением. Всплывающие уведомления являются необязательной частью приложений.

Для   их   использования в     манифесте   приложения   необходимо   включить соответствующую настройку (Рис. 6.6).

Рис. 6.6.

Всплывающие  уведомления  могут   содержать   текст   и   картинку.    Другой тип  контента,  например  элементы  интерфейса,  в   них  не  размещают.  Если проводить аналогию с предыдущими версиями Windows, они являются заменой всплывающим уведомлениям  панели  задач. Когда пользователь касается или щелкает  всплывающее   уведомление, запускается  приложение,  с  которым связанно данное  сообщение. Это единственный механизм, который позволит переключить пользователя в приложение, если он работает с другой программой. Пользователь может пропустить сообщение. Также его  можно отключить для определенного приложения.

TВсплывающие уведомления следует  использовать для   доставки   данных, в  которых пользователь очень заинтересован. Например,  последние новости, сообщение  из  чата  или  входящие  сообщения  электронной  почты.  Следует помнить, что пользователь может и не увидеть присланных ему данных.

Отправка   всплывающих  уведомлений   похожа    на    механизм    создания анимированной плитки. Необходимо сформировать разметку  XML с данными, используя существующие шаблоны, для отображения  необходимого контента. Всплывающие уведомления визуально отличаются от плиток, хотя шаблоны для формирования почти идентичны.

Есть два типа всплывающих уведомлений:

·                   Стандартное — предназначено для большинства ситуаций. Длительность его отображения на экране — 7 секунд. При его появлении система издает короткий звуковой сигнал. Этот тип  уведомления хорошо подходит для отображения сообщений о входящем электронном письме, обновления статуса в социальных сетях;

·                   Длительное — отличается от стандартного длительностью  отображения (30 секунд) и наличием периодических звуковых  сигналов. Его следует применять для более настойчивого привлечения внимания пользователя (сигнала о сообщении из чата или о входящем звонке).

Для    создания    всплывающего уведомления  необходимо    сформировать шаблон   уведомления.  Чтобы   получить   такой    шаблон,   следует   вызвать статический   метод   GetTemplateContent    класса   Windows.UI.Notifications. ToastNotificationManager и установить как параметр одно из значений списка Windows.UI.Notifications.ToastTemplateType:

·                   ToastImageAndText01  —  уведомление содержит  большую   картинку и текстовое сообщение, которое переносится на 3 строки;

·                   ToastImageAndText02  —  уведомление содержит  большую   картинку и  одну строку текста  жирным шрифтом; остальные  две  строки  текста с обычным шрифтом для одного текстового сообщения;

·                   ToastImageAndText03  —  уведомление содержит  большую  картинку и две  строки текста жирным шрифтом для одного  сообщения, третья строка текста обычным шрифтом;

·                   ToastImageAndText04  —  уведомление содержит  большую   картинку и  одну строку текста  жирным шрифтом, остальные  две  строки  текста обычным шрифтом для двух сообщений;

·                   ToastText01 — уведомление содержит маленькую картинку и текстовое сообщение, которое переносится на 3 строки;

·                   ToastText02 — уведомление содержит маленькую картинку и одну строку текста жирным шрифтом, остальные две строки текста обычным шрифтом для одного текстового сообщения;

·                   ToastText03 — уведомление содержит маленькую картинку и две строки текста жирным шрифтом для одного сообщения,  третья  строка текста обычным шрифтом;

·                   ToastText04 — уведомление содержит маленькую картинку и одну строку текста жирным шрифтом, остальные две строки текста обычным шрифтом для двух сообщений.

Ниже показан пример для отображения всплывающего уведомления с большой картинкой и одним текстовым сообщением:

var xmlDocument = Windows.UI.Notifications.ToastNotificationManager. GetTemplateContent(Windows.UI.Notifications.ToastTemplateType. ToastImageAndText03);

XmlNodeList toastTextAttributes = xmlDocument.GetElementsByTagName("text"); foreach (IXmlNode toastTextAttr in toastTextAttributes)

{

toastTextAttr.InnerText = "This is a toast notification!";

}

XmlNodeList toastImageAttributes = xmlDocument.GetElementsByTagName("image");

 ((XmlElement)toastImageAttributes[0]).SetAttribute("src", "ms-resource:Assets/ToastImage.png");

((XmlElement)toastImageAttributes[0]).SetAttribute("alt", "App’s Toast Notification");

var toastNotification = new Windows.UI.Notifications.

ToastNotification(xmlDocument);

var toastNotifier = Windows.UI.Notifications. ToastNotificationManager.CreateToastNotifier(); toastNotifier.Show(toastNotification);

На основании шаблона с указанными данными уведомления создается объект класса   ToastNotification.   Через   свойство ExpirationTime   можно   указать срок  действия сообщения. Кроме того, можно  подписаться на  ряд событий уведомления и реагировать на изменения его состояния:

·                   Activated — пользователь щелкает или касается уведомления;

·                   Dismissed   —   уведомление  было   проигнорировано  или    закрыто пользователем;

·                   Failed —не удалось отправить уведомление.

Метод    Show    класса    ToastNotifier    запускает    механизм     отображения всплывающего уведомления. Пример работы показан ниже (Рис. 6.7).

Рис. 6.7.

Полная схема xml уведомления может содержать следующие элементы:

<toast>

<visual lang="en-US">

<binding …>

<image …/>

<text …></text>

</binding>

</visual>

<audio scr="ms-winsoundevent:…" loop="True|False" silent="True|False" />

</toast>

Тег  audio  позволяет задать  настройки  для  воспроизводимого   звука   при отображении  уведомления. Через  атрибут  scr   можно   указать,   какой   из предустановленных звуков   платформы  будет   использоваться. Допустимые значения:      Notification.IM,Notification.Looping.Call,     Notification.Looping. Alarm.  Значение  loop  true  включает  повторение звука, пока  уведомление отображается,     silent     —отключает/включает      звуковое      сопровождение уведомления.

Всплывающие  уведомления позволяют создавать расписание. Расписание дает возможность  отображать уведомление в  заданное  время для использования в  сценариях, когда необходимо получить напоминание, создать будильник или уведомление основанное на  конкретном  времени. Механизм расписания не зависит от состояния приложения и подключения к сети.

Для формирования всплывающего  уведомления с  расписанием  необходимо повторить те же действия, что и для обычного, только вместо создания объекта типа ToastNotification следует создавать объект типа ScheduledToastNotification и передать этот объект методу AddToSchedule класса ToastNotifier.

Сергей Лутай, Сергей Байдачный, Windows 8 для C# разработчиков

По теме:

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