Ноу Інти, лекція, push-повідомлення і windows push notification service

Завдання, залежні від екрану блокування і тригери

Коли викликаються, сценарії і приклади

Дивіться ControlChannelTrigger нижче.

Користувач увійшов в систему з екрану блокування.

Пристрій перейшло в неактивний режим (наприклад, відключився екран) в результаті відсутності активності користувачам.

Користувач проявив активність в режимі неактивності пристрою.

SystemTriggerType.controlChannelReset використовується для управління фонової завданням для змін в каналі управління замість подій самого каналу.

Примітка. У імітаторі Visual Studio робота з екраном блокування не підтримується. для налагодження додатків екрану блокування, вам потрібно використовувати опції налагодження локального комп'ютера (Local Machine) або Віддалений комп'ютер (Remote Machine).

Фонові завдання для цих тригерів створюються і реєструються так, як ми вже бачили. Наприклад, TimeTrigger, створюється із зазначенням інтервалах freshnessTime (в хвилинах) і прапора oneShot, як показано в Сценарії 5 прикладу "Фонова завдання" (js / time-trigger-background-task.js):

Хоча і можна здійснити телефонний дзвінок BackgroundTaskBuilder.register. завдання не буде виконана до тих пір, поки користувач не додасть додаток на екран блокування, як ми бачили на рис. 6.1. У додатку немає можливості цим управляти - все, що воно може зробити, надіславши запит відповідні дані - це переконатися в тому, що є для вибору користувачем у відповідному розділі Настройок ПК (PC Settings).

Запит виконується за допомогою методу Windows.ApplicationModel.Background.BackgroundExecutionManager.requestAccessAsync; даннй виклик слід виконати до реєстрації фонової завдання (знову дивіться Сценарій 5 прикладу "Фонова завдання"):

Коли цей виклик здійснюється вперше, він викликає вікно для отримання згоди користувача, яке показано на рис. 6.2. Якщо користувач вибирає варіант Дозволити (Allow), додаток з'явиться у відповідному розділі Параметрів ПК (PC Settings) в якості опції для додавання на початковий екран, в іншому випадку цього не станеться. Як і у випадку з іншими дозволами, користувачі можуть змінювати свою думку пізніше, скориставшись настройками Дозволів (Permissions), як показано на рис. 6.3.


Мал. 6.2. Питання, який задається користувачу, коли програму потрібен доступ до екрану блокування

Ноу Інти, лекція, push-повідомлення і windows push notification service


Мал. 6.3. Параметр екрану блокування на панелі налаштування Дозволів (Permissions) додатки, яким потрібен подібний доступ

Сценарій 2, в свою чергу, показує відправку повідомлень індикатора подій на екран блокування, разом з оновленням тексту близько години, якщо додаток вибрано для відображення цього тексту. Тут немає нічого особливого, якщо мова йде про екран блокування: подібні оновлення відбуваються точно так же, як і для плитки програми. Різниця лише в тому, що ці оновлення відображаються на екрані блокування. У випадку з індикаторами подій, гліф повідомлення відображається разом із зображенням, яке задає параметр Емблема (Badge Logo), заданий в розділі Інтерфейс програми> Повідомлення (Application UI> Notifications) маніфесту (рис. 6.1). Повторюючи з раніше згаданого, це зображення може мати лише білі і прозорі пікселі і має бути представлено в трьох розмірах для різного рівня масштабування: 24x24 (100%), 33x33 (140%), і 43x43 (180%).

Налагодження фонових завдань

До даного моменту ви вже, можливо, запустили фонову задачу TimeTrigger в Сценарії 5 прикладу "Фонові завдання", і хоча з того часу минуло вже більше 15 хвилин (може бути більше 30 хвилин, якщо ви просто пропустили 15-хвилинне вікно, коли таймери об'єдналися ), ви, можливо, все ще чекаєте, поки пройде цей період. Чи означає це, що ваше життя при налагодженні фонових завдань складатиметься із суцільного очікування?

На щастя, відповідь на це питання - "Ні" і "Можливо". Тобто, відладчик Visual Studio знає про зареєстрованих фонових завданнях і надає їх список в випадаючому меню Призупинити (Suspend) на панелі інструментів:

Ноу Інти, лекція, push-повідомлення і windows push notification service

Ноу Інти, лекція, push-повідомлення і windows push notification service

Третє застереження полягає в тому, що фонові завдання, які використовують ControlChannelTrigger. PushNotificationTrigger. і SystemTriggerType.SmsReceived не відображаються в вищезгаданому меню Visual Studio.

І, нарешті, ще раз зазначу, що фонові завдання не підтримуються в імітаторі Visual Studio, як і динамічні плитки, повідомлення та багато інших механізми, згадані в цій лекції. Вам потрібно використовувати, замість цього, опції Локальний комп'ютер (Local Machine) або Віддалений комп'ютер (Remote Machine).

Що ми тільки що вивчили (Ух ти!)

  • Оновлення плиток - основної та додаткових, поновлення індикаторів подій, спливаючі повідомлення, фонові завдання, з яких додаток може відправляти поновлення плиток і повідомлення - це те, як додаток робить свій внесок в загальний динамізм системи навіть тоді, коли воно не виконується.
  • Оновлення та повідомлення, звичайно, можуть бути відправлені з що виконується додатки, але існують інші методи для доставки подібних оновлень, коли програма не виконується. Оновлення можуть бути заплановані для показу через деякий час, додаток може налаштувати систему для періодичного запиту якогось сервісу на предмет оновлень для плиток і індикаторів подій. Додатки так само можуть налаштовувати push-повідомлення, які виходять від веб-сервісу і відправляються клієнту за допомогою Windows Push Notification Service (WNS).
  • Оновлення плиток відправляють з використанням корисних даних XML на основі визначених шаблонів. Зазвичай дані включають в себе оновлення і для квадратних, і для прямокутних плиток, так як польозватель може вибрати, яка саме плитка буде відображатися. XML може посилатися на зображення як з локальних, так і з віддалених джерел, зображення не може бути більше, ніж 1024x1024 пікселів, його розмір не повинен перевищувати 200 Кб.
  • Плитка в будь-який час може циклічно відображати до п'яти оновлень, кожне з яких може бути замінено окремо від інших.
  • Додатки, що мають особливе вміст, який користувачеві може бути цікаво прикріпити на початковому екрані в якості додаткової плитки, надають команди Прикріпити (Pin) і Відмінити закріплення (Unpin). Додаткові плитки, при запуску програми зі спеціальними аргументами запуску, так само можуть приймати поновлення динамічних плиток.
  • Індикатори подій - це маленькі значки (гліфи) або числа, які можуть відображатися на будь-який плитці. Оновлення індикаторів подій відправляються за допомогою тих же самих механізмів, що і поновлення плиток, але працюють вони самостійно.
  • Спливаючі повідомлення (toasts) - це повідомлення, які з'являються для того, щоб оповістити користувача про нову інформацію, зробити нагадування і так далі. Вони можуть бути налаштовані для програвання звуків, встановлені для повторення через заданий інтервал, заплановані для відвідування в майбутньому. Як і додаткові плитки, спливаючі повідомлення, при активації, запускають додаток зі спеціальними стартовими аргументами.
  • Періодичні поновлення для плиток і індикаторів подій передбачають передачу Windows URI веб-сервісу для виклику через вибраний інтервал - від 30 хвилин до 24 годин. Періодичні оновлення - це найпростіший і найменш витратний спосіб для поновлення плитки за допомогою веб-сервісу.
  • Push-повідомлення для плиток, індикаторів подій, спливаючих повідомлень, і необроблені повідомлення (що містять будь-які необхідні дані), можна використовувати для оновлень, прив'язаних до конкретного користувача і вироблених з високою частотою. Їх використання включає в себе створення веб-сервісу, який зв'язується з WNS для відправки подібних повідомлень за заданими URI каналів, процес, який складніше і затратним, ніж робота з періодичними оновленнями.
  • Фонові завдання - це невеликі фрагменти коду, які додаток налаштовує на запуск при спрацьовуванні певного тригера, такого, як зміни в умовах підключення до мережі, таймера, прийом push-повідомлення, і при оновленні програми. Однак додатків ніколи не слід залежати від фонових завдань, так як вони завжди знаходиться під управлінням користувача.
  • Тригери фонових завдань можуть бути тонко налаштовані з використанням спеціальних умов для того, щоб уникнути виконання завдань тоді, коли в цьому немає необхідності (наприклад, тоді, коли немає підключення до Інтернету).
  • Для роботи деяких тригерів потрібно, щоб додаток було додано на екран блокування. Такі додатки спочатку повинні запитати доступ, що залежить від рішення користувача, і користувач повинен додати додаток за допомогою Параметрів ПК (PC Settings). Отримавши такий привілей, додатки можуть відправляти поновлення значків і тексту на екран блокування.
  • За допомогою тригерів обслуговування, додатки можуть налаштовувати завдання, які виконуються періодично, коли пристрій підключено до джерела живлення.

Схожі статті