Використання спливаючих повідомлень Metro

Спливаюче повідомлення являє собою коротке повідомлення, яке містить важливі дані для користувача програми Даний тип повідомлення має на увазі швидке повідомлення користувача про сюжеті подію відкриття програми для отримання більш детальної інформації Воно може відображатися, коли користувач не працює з додатком Спливаючі повідомлення є необовязковою частиною додатків

Для їх використання в маніфесті додатка необхідно включити відповідну настройку (Мал 66)

Рис 66

Спливаючі повідомлення можуть містити текст і картинку Інший тип контенту, наприклад елементи інтерфейсу, в них не розміщують Якщо проводити аналогію з попередніми версіями Windows, вони є заміною спливаючі повідомлення панелі завдань Коли користувач стосується або клацає спливаюче повідомлення, запускається додаток, з яким повязано дане повідомлення Це єдиний механізм, який дозволить переключити користувача в додаток, якщо він працює з іншою програмою Користувач може пропустити повідомлення Також його можна відключити для певної програми

TВспливающіе повідомлення слід використовувати для доставки даних, в яких користувач дуже зацікавлений Наприклад, останні новини, повідомлення з чату або вхідні повідомлення електронної пошти Слід памятати, що користувач може і не побачити надісланих йому даних

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

Є два типи спливаючих повідомлень:

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Стандартне – призначено для більшості ситуацій Тривалість його відображення на екрані – 7 секунд При його появі система видає короткий звуковий сигнал Цей тип повідомлення добре підходить для відображення повідомлень про вхідний електронному листі, оновлення статусу в соціальних мережах

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Тривале – відрізняється від стандартного тривалістю відображення (30 секунд) і наявністю періодичних звукових сигналів Його слід застосовувати для більш наполегливого залучення уваги користувача (сигналу про повідомлення з чату або про вхідному дзвінку)

Для створення спливаючого повідомлення необхідно сформувати шаблон повідомлення Щоб отримати такий шаблон, слід викликати статичний методGetTemplateContent    класуWindowsUINotifications ToastNotificationManager і встановити як параметр одне зі значень списку WindowsUINotificationsToastTemplateType:

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp ToastImageAndText01  – Повідомлення містить велику картинку і текстове повідомлення, яке переноситься на 3 рядка

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp ToastImageAndText02  – Повідомлення містить велику картинку і один рядок тексту жирним шрифтом решта два рядки тексту із звичайним шрифтом для одного текстового повідомлення

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp ToastImageAndText03  – Повідомлення містить велику картинку і два рядки тексту жирним шрифтом для одного повідомлення, третій рядок тексту звичайним шрифтом

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp ToastImageAndText04  – Повідомлення містить велику картинку і один рядок тексту жирним шрифтом, решта два рядки тексту звичайним шрифтом для двох повідомлень

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp ToastText01 – Повідомлення містить маленьку картинку і текстове повідомлення, яке переноситься на 3 рядка

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp ToastText02 – Повідомлення містить маленьку картинку і один рядок тексту жирним шрифтом, решта два рядки тексту звичайним шрифтом для одного текстового повідомлення

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp ToastText03 – Повідомлення містить маленьку картинку і два рядки тексту жирним шрифтом для одного повідомлення, третій рядок тексту звичайним шрифтом

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp ToastText04 – Повідомлення містить маленьку картинку і один рядок тексту жирним шрифтом, решта два рядки тексту звичайним шрифтом для двох повідомлень

Нижче показаний приклад для відображення спливаючого повідомлення з великою картинкою і одним текстовим повідомленням:

var xmlDocument = WindowsUINotificationsToastNotificationManager GetTemplateContent(WindowsUINotificationsToastTemplateType ToastImageAndText03)

XmlNodeList toastTextAttributes = xmlDocumentGetElementsByTagName(&quottext&quot) foreach (IXmlNode toastTextAttr in toastTextAttributes)

{

toastTextAttrInnerText = &quotThis is a toast notification"

}

XmlNodeList toastImageAttributes = xmlDocumentGetElementsByTagName(&quotimage&quot)

 ((XmlElement)toastImageAttributes[0])SetAttribute(&quotsrc&quot, &quotms-resource:Assets/ToastImagepng&quot)

((XmlElement)toastImageAttributes[0])SetAttribute(&quotalt&quot, &quotApp’s Toast Notification&quot)

var toastNotification = new WindowsUINotifications

ToastNotification(xmlDocument)

var toastNotifier = WindowsUINotifications ToastNotificationManagerCreateToastNotifier() toastNotifierShow(toastNotification)

На підставі шаблону за зазначеними даними повідомлення створюється обєкт класуToastNotification Через властивість ExpirationTime   можна вказати термін дії повідомлення Крім того, можна підписатися на ряд подій повідомлення та реагувати на зміни його стану:

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Activated – Користувач клацає або стосується повідомлення

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Dismissed   – Повідомлення було проігноровано або закрито користувачем

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Failed -Не вдалося відправити повідомлення

МетодShow    класуToastNotifier    запускає механізм відображення спливаючого повідомлення Приклад роботи показаний нижче (Мал 67)

Рис 67

Повна схема xml повідомлення може містити такі елементи:

&lttoast&gt

&ltvisual lang=&quoten-US&quot&gt

&ltbinding ..&gt

&ltimage ../&gt

&lttext ..&gt&lt/text&gt

&lt/binding&gt

&lt/visual&gt

&ltaudio scr=&quotms-winsoundevent:..&quot loop=&quotTrue|False&quot silent=&quotTrue|False&quot /&gt

&lt/toast&gt

Тегaudio  дозволяє задати налаштування для відтвореного звуку при відображенні повідомлення Через атрибутscr   можна вказати, який з попередньо встановлених звуків платформи буде використовуватися Допустимі значення:NotificationIM,NotificationLoopingCall,     NotificationLooping Alarm Значенняloop  true включає повторення звуку, поки повідомлення відображається,silent     -отключает/включает звуковий супровід повідомлення

Спливаючі повідомлення дозволяють створювати розклад Розклад дає можливість відображати повідомлення в заданий час для використання в сценаріях, коли необхідно отримати нагадування, створити будильник або повідомлення засноване на конкретному часу Механізм розкладу не залежить від стану програми та підключення до мережі

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

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

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*