Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Привет всем!

Сегодня поговорим о новых возможностях, касающихся уведомлений в Windows/Windows Phone 8.1. Обсудим какие типы уведомлений существуют, каким способом их организовать в своем приложении, а также отметим одну из главных новинок для Windows Phone устройств — Центр уведомлений (Action Center).

Уведомления

Уведомления в Windows Phone это важный способ взаимодействия приложения с пользователем. Они помогают пользователю узнать об обновлении информации в приложении, оповещают его о действиях других пользователей или напоминают о необходимых активностях.

  • Уведомления могут приходить от какой-либо службы или же локально от приложения.
  • В Windows/Windows Phone 8.1 существует несколько способов отображения уведомлений:
  • Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications
  • Пользователь может получить уведомление в виде информации на плитке приложения или при помощи маленького черного значка.
  • Подробнее о возможностях живых плиток можно узнать из следующего курса.
  • В дополнение к этому доступны и следующие способы отображения уведомлений:
  • Toast — уведомления – при получении этого типа уведомления в верхней части экрана устройства появляется текстовое оповещение. При этом на текущий момент приложение может быть неактивным. Нажав на это сообщение, можно быстро переключиться к соответствующему приложению.
  • Raw — уведомления – при этом типе уведомления содержимое передается непосредственно приложению. Приложение обрабатывает содержимое уведомления по собственному алгоритму. Эти уведомления не имеют собственного UI. Как и остальные push-уведомления, WNS сервис доставляет их к приложению из облачной или любой другой внешней службы.

Toast — уведомления

Для работы с Toast- уведомлениями необходимо подключить этот способ отображения уведомлений в манифесте приложения. Мы не сможем посылать Toast- уведомления, пока не укажем, что приложение может их отправлять.
К счастью, это очень просто – переключить соответствующую настройку в Package.appxmanifest в положение «Yes»:

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Отправляем Toast-уведомление, используя следующий XML код:

headline text
body text

Заметим, что эта XML схема стандартна для любого вида уведомлений.
При нажатии на Toast – уведомление пользователь сможет запустить приложение.

  1. Для платформы Windows доступно целых 8 шаблонов отображения Toast-уведомлений, но на Windows Phone 8.1 они имеют только один фиксированный вид, независимо от указанного разработчиком шаблона:
  2. Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications
  3. Однако логика работы Toast — уведомлений на обеих платформах будет одинакова.

Способы реализации уведомлений

Для всех Windows устройств существуют несколько способов реализации механизма уведомлений:

  • Уведомления по расписанию (Scheduled). Такие уведомления будут стоять в очереди задач системы и запускаться в заданное фиксированное время;
    Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications
    Как это работает:
    Внутри приложения используется API планировщика уведомлений, который обращается к расписанию очереди системы. Система проверяет очередь и в указанное для уведомления время отправляет обновление на плитку или Toast.
    var scheduleToast = new ScheduledToastNotification(
    xmlDoc,
    DateTimeOffset.UtcNow + TimeSpan.FromDays(1.0) );
    var toastNotify = ToastNotificationManager.CreateToastNotifier();
    toastNotify.AddToSchedule(scheduleToast);

    При помощи класса ScheduledToastNotification создаем объект, отвечающий за уведомление по расписанию, в котором, используя ранее продемонстрированный XML код, указываем содержание и устанавливаем время в которое необходимо отобразить уведомление. А с помощью класса ToastNotificationManager создаем объект toastNotify, для которого реализована функция добавления уведомления в очередь системы AddToSchedule().

  • Периодические обновления (Periodic) — добывают данные для уведомлений из указанного URL и отображают их с указанной периодичностью – раз в час/в 6 часов/в 12 часов;
    Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications
    Как это работает:
    В приложении обращаемся к службам Windows System Services, указывая что нам необходимы уведомления с периодичностью в 0.5/6/12 часов. Эти службы в свою очередь связываются с API обновлений для плиток и значков определенное количество раз, при помощи HTTP — запроса получают XML данные уведомления, которые можно передать плитке или значку.
    var periodic = TileUpdateManager.CreateTileUpdaterForApplication();
    Uri myTileFeed = new Uri(«http://mysite.com/tileRSS.xml»);
    periodic.StartPeriodicUpdate(myTileFeed, PeriodicUpdateRecurrence.Hour);

    С помощью класса TileUpdateManager создаем объект periodic, обеспечивающий периодическое обновление плитки. Далее создаем URI канал myTileFeed, в который будут транслироваться данные для уведомления в формате xml. Объект типа PeriodicUpdateRecurrence позволит установить необходимую периодичность уведомлений, поступающих из канала myTileFeed.
    Существует более простой способ реализации периодических уведомлений, используя настройки файла Package.appxmanifest:
    Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications
    Необходимо только выбрать периодичность и указать URI канал.

  • Локальные уведомления приложения (Local);
    Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications
    Как это работает:
    Приложение использует для уведомлений обновления плиток и значков, в фоном режиме уже обращается к API Toast – уведомлений.
    BadgeNotification newBadge = new BadgeNotification(badgeDoc);
    BadgeUpdater update = BadgeUpdateManager.CreateBadgeUpdaterForApplication();
    update.Update(newBadge);

    Создаем значок с помощью объекта типа BadgeNotification и функцией Update(), реализованной для объекта типа BadgeUpdater, мгновенно обновляем значок.

Ниже представлена таблица возможности использования способов реализации уведомлений в зависимости от их типа:

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Не оставим без внимания последний способ реализации уведомлений — push-уведомления. Рассмотрим его подробнее.

Push уведомления

До текущего релиза для подобного типа уведомлений в Windows 8.0 и Windows Phone 8.0 использовались два различных сервиса: служба Microsoft Push Notification Services (MPNS) для телефонов и Windows Notification Services (WNS) для остальных устройств на Windows.

Однако, теперь Push-уведомления для любых устройств Windows/Windows Phone 8.1 реализуются через службу WNS.

Какие преимущества получат разработчики, используя WNS:

  • Одинаковый подход для любых устройств на Windows;
  • Единый процесс регистрации приложений для push-уведомлений;
  • Единый шаблон push-уведомлений для Windows/Windows Phone 8.1 платформ.

Как это работает:

  1. Windows Phone 8.1 приложение связывается с Windows Notification Client платформой для получение URI канала приложения, который уникален для каждого устройства и приложения;
  2. Далее URI канал необходимо зарегистрировать в облачном сервисе;
  3. Облачный сервис проводит аутентификацию WNS сервиса, предоставляя свои данные (пакет SID и секретный ключ), и предоставляет доступ, который позволяет сервису отправлять уведомления. Теперь можно отправлять push –уведомления с помощью этой службы;
  4. Облачная служба, в соответствующее время посылает push-уведомление службе WNS;
  5. WNS связывается с Windows Notification Client платформой, которая производит обновление любого из заданных типов уведомлений.

    Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

  • Подробнее о работе WNS службы можно прочитать здесь.
  • Ниже реализуем механизм push-уведомлений в приложении по шагам, выполняя ряд необходимых действий:
  • Для начала произведем все необходимые приготовления в Центре разработки, используя свой аккаунт разработчика:
  • Нажимаем Submit App и резервируем имя предполагаемого приложения:
  • Заполним App Info:
  • Спустимся ниже и в More Options найдем необходимые для WNS настройки:
  • Переходим по ссылке here:
  • И получаем все необходимые данные для дальнейшей работы.
  • В Visual Studio создадим тестовое универсальное приложение:
  • В обозревателе решений нажимаем правой кнопкой мыши на проект для Windows Phone и выбираем Associate App with the Store:
  • Запустится мастер связывания:
  • Авторизуемся, используя аккаунт разработчика и выберем приложение, которые мы регистрировали до этого:
  • Все данные заполнились автоматически:

После клика на Associate, в проекте Windows Phone будет создан Package.StoreAssociation.xml файл.

  1. Авторизуемся в панели управления Azure и нажимаем кнопку Создать:
  2. Нажимаем на Службы Приложений -> Service Bus -> Концентратор уведомлений
  3. Нажимаем на Быстро создать и заполняем необходимые данные:
  4. Создаем новый концентратор уведомлений (Notification Hub):
  5. Нажимаем на только что созданное пространство имен TestDemoPushHub-ns и находим только что созданный концентратор уведомлений:
  6. Перейдем в настройки концентратора уведомлений, где заполним отмеченными ранее данными необходимые поля:
  7. Теперь концентратор уведомлений настроен, как WNS служба. Следующая информация будет необходима для подключения приложения к концентратору уведомлений:
  8. Эту информацию можно получить при нажатии на кнопку «Сведения о подключении»:
  9. Подключаем свое приложение к концентратору уведомлений.
  10. Правой кнопкой мыши нажимаем на решение в Visual Studio:

В диалоговом окне Manage NuGet Packages ищем WindowsAzure.Messaging.Managed и нажимаем Install:

  • Дальше выбираем установку пакета для нужного проекта:

Теперь мы загрузили, установили и добавили ссылки на библиотеки Azure Messaging во все проекты, используя WindowsAzure.Messaging.Managed NuGet package.

Открываем файл App.xaml.cs из общего проекта Shared и подключаем следующие библиотеки:

using Windows.Networking.PushNotifications;
using Microsoft.WindowsAzure.Messaging;
using Windows.UI.Popups;

Там же добавляем метод InitNotifictionAsync:

private async void InitNotificationsAsync()
{
var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

var hub = new NotificationHub(«TestDemoPushHub», «Endpoint=sb://testdemopushhub-ns.servicebus.windows.net/;SharedAccessKeyName=DefaultListenSharedAccessSignature;SharedAccessKey=z2Sj7sgwGpkvTyE/H5QyiffCpwCjV/PmJBY1h4WhXac=»);

var result = await hub.RegisterNativeAsync(channel.Uri);

// Displays the registration ID so you know it was successful
if (result.RegistrationId != null)
{
var dialog = new MessageDialog(«Registration successful: » + result.RegistrationId);
dialog.Commands.Add(new UICommand(«OK»));
await dialog.ShowAsync();
}
}

Этот метод получает URI канал для приложения от WNS, затем регистрирует этот URI канал в концентраторе уведомлений. При создании переменной hub не забудем указать имя нашего концентратора уведомлений и строку подключения с доступом Listen:

var hub = new NotificationHub(«», «»); («TestDemoPushHub», «Endpoint=sb://testdemopushhub-ns.servicebus.windows.net/;SharedAccessKeyName=DefaultListenSharedAccessSignature;SharedAccessKey=z2Sj7sgwGpkvTyE/H5QyiffCpwCjV/PmJBY1h4WhXac=»);

Где данные для необходимых переменных достаем из Сведений о подключении концентратора уведомлений в Azure:

hub name = TestDemoPush; connection string listen access = DefaultListenSharedAccessSignature;

В обработчике события OnLaunched в App.xaml.cs добавим вызов метода InitNotificationsAsync().

  1. Это необходимо для того, чтобы URI канал для ваших уведомлений регистрировался при каждом запуске приложения.
  2. В обозревателе решений найдем и настроим файл Package.appxmanifest:

Установим настройку Toast capable в положение Yes.
Теперь приложение готово к тому чтобы принимать уведомления.

  • Основная функция приложения показывать результат регистрации канала:
  • Отправим уведомления приложению.
  • Создадим консольное приложение, через которое будем отправлять push-уведомления:
  • Нажимаем Tools-> NuGet Package Manager-> Package Manager Console
  • Таким образом, добавим ссылку на Azure Service Bus SDK.

Подключим в проекте следующую библиотеку: using Microsoft.ServiceBus.Notifications;

И добавим метод для отправки уведомлений:

private static async void SendNotificationAsync()
{
NotificationHubClient hub = NotificationHubClient
.CreateClientFromConnectionString(«», «»);
var toast = @»Hello from a .NET App!»;
await hub.SendWindowsNativeNotificationAsync(toast);
}

  1. В методе создаем объект типа NotificationHubClient, где заполняем необходимые данные для подключения:
  2. connection string with full access = DefaultFullSharedAccessSignature (вашего Service Bus); hub name = TestDemoPushHub.
  3. А дальше создаем и заполним данные самой переменной, отвечающей за содержание уведомления:

Hello, guys!»;

  • В теле программы вызовем написанный метод:
    SendNotificationAsync();
  • Запускаем и получаем push-уведомления от приложения TestDemoPush на телефон:
  • Посмотрим на уведомления в Центре уведомлений:
  • При нажатии на любое из них перейдем в приложение.

Центр уведомлений

Еще немного слов об одной из ключевых нововведений в Windows Phone 8.1 — Центре уведомлений (Action Center). Вызывается он свайпом вниз от верхней границы экрана. В него попадают все новые сообщения, уведомления, упоминания и напоминания от различных приложений. Так же в Центре уведомлений расположены четыре переключателя, которые можно поменять на вызов любых настроек.

Теперь пользователи выбирают какие из приложений могут отображать уведомления в Центре уведомлений, а разработчики приложений получили специальные API, которые дают возможность выбирать какие из действий будут доступны из центра уведомлений. При помощи этих API и механизмов разработчики приложений могут управлять всплывающими уведомлениями.

Новые возможности для разработчиков:

  • Удаление одного или нескольких уведомлений;
  • Тегирование и группы уведомлений;
  • Замена устаревшего уведомления на новое;
  • Установка срока действия уведомления;
  • «Goast Toast» – уведомления, которые появляется только в Центре уведомлений.

Центр уведомлений доступен только для телефона.

Подробнее о возможностях Центра уведомления для разработчиков можно узнать из этого курса.

Заключение

Уведомления в Windows Phone 8.1 — это целый набор разнообразных инструментов, предоставляющий разработчику возможность самому выбрать способ общения своего приложения с пользователем. Особое внимание все же советую обратить на невероятно удобную и мощную службу WNS, чьи преимущества оказались особенно заметны на мобильных устройствах.

Полезные ссылки

  1. Channel 9: Building Apps for Windows Phone 8.1
    Microsoft Azure: Getting Started with Notification Hubs
    MVA: Размещение и продвижение приложений в Windows Store
    Обучающие курсы виртуальной академии Microsoft (MVA)
    Портал Microsoft Azure
    Центр разработки Windows
    Загрузить бесплатную или пробную Visual Studio 2013
    Как опубликовать приложение в Windows Store
    Скачать пример приложения из этой статьи
  2. maria_gore
  3. Источник

Где хранятся пуш-уведомления на Андроид: как посмотреть историю журнала если смахнул

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Трудно представить современный смартфон, от которого не будет исходить звуковой сигнал каждые полчаса, а то и чаще. Звуковые уведомления стали важной составляющей каждого приложения, а также всего телефона в целом. Без них нам приходилось бы вручную открывать мессенджеры для проверки сообщений, игры для получения бонусов и так далее. Иногда эти сообщения можно случайно скрыть. Мы расскажем, где хранятся пуш-уведомления после скрытия на телефонах с Андроидом.

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Где хранятся пуш-уведомления и информация о последних действиях на Андроиде

Сама функция хранения последних входящих уведомлений появилась относительно недавно, только в телефонах с ОС Android 10 и новее. Чтобы посмотреть, какая у вас стоит версия Андроид, выполните следующие действия:

  • Откройте настройки (значок шестеренки в правом верхнем углу).

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

  • Перейдите в раздел «Об устройстве».

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

  • Найдите строку «Версия Android» (не перепутайте с версией оболочки, например, MIUI).

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

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

  • Откройте настройки.
  • Перейдите в раздел «Уведомления и центр контроля».

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

  • Найдите подраздел «Журнал уведомлений».
  • Иногда он находится в другом подразделе. В таких случаях рекомендуем просто вбить в поиск название нужной функции.

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Итак, на этом этапе вы либо не найдете нужную функцию (по умолчанию она, увы, есть не на каждом устройстве), либо увидите пустой журнал, либо получите нужные сведения. Если произошло что-то из первых двух случаев, значит, придется устанавливать стороннее ПО для чтения или ведения журнала.

Как активировать встроенный журнал уведомлений

Для активации понадобится установить специальную программу, значительно расширяющую функционал настроек гаджета. Программа называется Activity Launcher, и найти ее можно в магазине приложений Play Market. Вес программы составляет чуть менее 1 Мб, потому она установится на любое устройство. После установки приложения выполните следующие действия:

  • Запустите Activity Launcher.
  • Подтвердите ознакомление с правилами.
  • В списке нужно найти пункт «Настройки» с белой шестеренкой. Таких пунктов может быть несколько, нужна именно белая шестеренка.
  • Откройте пункт «Журнал уведомлений».

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Готово. Так вы получите доступ к скрытым уведомлениям. Напомним, что работает это только в Android не старее 10 версии.

Разработчики некоторых смартфонов решили проверить смекалку у пользователей и спрятали нужную функцию, позволяющую вернуть смахнутые сообщения, в отдельный виджет, которым почти уже никто и не пользуется. Итак, чтобы включить архив сообщений на телефоне, выполните действия ниже:

  • Держите палец на свободной области экрана несколько секунд, чтобы открыть дополнительные кнопки.
  • Нажмите на кнопку «Виджеты».
  • Найдите виджет «Настройки» и перетяните его на главный экран.
  • Появится меню выбора раздела настроек. Выберите «Журнал уведомлений».

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Готово. Удаленные сообщения должны отображаться там.

Итак, последний способ – это не обращаться к существующему журналу, а скачать приложение, которое ведет свою историю. Одним из таких можно назвать программу Past Notifications. Установите ее через магазин Play Market, а после откройте.

Софт запросит доступ к уведомлениям, который необходимо предоставить, иначе ничего не получится. Итак, после предоставления доступа, вернитесь в приложение. Скорее всего, пока оно будет пустовать.

Потому что ему пока негде искать новые уведомления.

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

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

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

Увы, старые сообщения таким способом уже не восстановить.

Чтобы в будущем минимизировать вероятность потери важного сообщения, мы рекомендуем заранее установить программу Past Notifications, а также клиент «Мой телефон» от Microsoft.

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

  • Благодарим за прочтение.

Особенности включения и настройки технологии push-уведомлений на Android

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

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Как настроить Push уведомления на Android?

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

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Выбираем пункт «Приложения и уведомления». Название актуально для версии Android 9.0, на более ранних системах раздел может называться «Уведомления». В нём перечислены:

  • Список недавно запущенных программ;
  • Статистика времени использования приложений;
  • Программы по умолчанию;
  • Разрешения и специальный доступ.

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push NotificationsМногозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Выбираем «Уведомления». Здесь настраивается стиль отображения сообщения на заблокированном экране телефоне, наличие значков сверху и использование сканера отпечатка пальцев для просмотра актуальных оповещений.

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Как изменить рингтон для оповещений

Рассмотрим, как настроить мелодию пуш уведомления на андроид. Звук настраивает отдельно с помощью внутренних инструментов. При нажатии на пункт «Звук», откроется контекстное меню с выбором программы для подбора файла. Если на смартфоне не установлено файловых менеджеров, по умолчанию будет выбрано «Хранилище мультимедиа».

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Рекомендуем ознакомиться с материалом «Как создать папку на Андроид телефонах и планшетах.» В нём приведён пример лучших файловых проводников на смартфон.

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

Рекомендуем:  Как передать музыку по блютузу с АндроидаМногозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Режим не беспокоить

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

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

В панели «Исключения» задаётся список контактов, которые могут отправить сообщение или позвонить даже во время включённого режима. Если некоторые важные контакты беспокоят слишком часто, можно запустить режим с интервальным вызовом. При нём, человек не может звонить чаще, чем один раз в 15 минут.

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Для информации: Режим включается в панели инструментов в верхней шторке или же при полном убавлении звука. Для это нужно перевести телефон в виброрежим с помощью регулятора громкости и сделать ещё одно нажатие вниз.

Варианты применения Push уведомлений

Три секрета центра уведомлений Windows Phone

Недавно читатель блога Илья доставил мне в почту ряд претензий к Windows Phone. Под горячую руку попал и центр уведомлений, но по ходу дела выяснилось, что для критика стали открытием несколько моментов, казавшихся мне очевидными.

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push NotificationsПриложение SofaScore ведет в центре уведомлений прямую трансляцию победы Зенита

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

Upd. 18 июля 2015 г. Я не знаю, почему Feedburner вдруг доставил почтовым подписчикам уведомление о старой записи. Извините за ложный пинг.

[+] Сегодня в короткой программе

Как закрыть центр уведомлений

Первой претензией читателя было неудобное закрытие ЦУ – он пожаловался на частые случайные попадания по кнопке Windows и соскальзывание пальца со шторки при попытке потянуть ее вверх.

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Это легко решается. Центр уведомлений можно закрыть нажатием кнопки Назад. И нет никакой проблемы 🙂

Как очистить ненужные уведомления

Читатель также посетовал, что в ЦУ нет возможности выборочного удаления уведомлений. Он подробно описал свои сценарии работы, но я не буду грузить вас ими. Действительно, в WP 8.1 отдельные уведомления удалить невозможно.

Но можно удалять уведомления отдельных приложений – просто смахивайте их пальцем к правому краю экрана!

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Конечно, читателя это не совсем устроило, но все же порадовало 🙂

Как гибко настроить уведомления

Мы также обсуждали настройку уведомлений различных приложений. Обратите внимание, что наряду с отображением в ЦУ для каждого из них есть еще три варианта уведомлений – баннер, вибрация и звук.

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Понятно, что можно задать для каждого приложения свой звуковой сигнал. Менее очевидно, что комбинируя разные уровни, вы можете разделять приложения по важности для вас, что повышает полезность ЦУ и снижает уровень назойливости уведомлений. Вот несколько моих примеров:

  • Магазин —  только отображать в ЦУ. История обновлений мне не настолько важна, чтобы привлекать к себе внимание еще какими-то способами.
  • Wi-Fi – показывать баннер. Я не бегаю по городу в поисках беспроводных сетей, а подключаюсь к ним только в известных местах, например, в метро. Баннер упрощает подключение, а звуки и вибрация мне для этого не нужны.

Push Notifications в Windows Phone 7 (toast) • Сергей Звездин

Рассматривая возможности Windows Phone 7 нельзя не обратить внимания на механизм Push Notification, которого не было в предыдущих версиях Windows Phone.

Этот механизм сам по себе очень удобный для разработчиков и пользователей и позволяет асинхронно уведомлять пользователя о происходящих событиях.

Например, сервис из облака может сообщить пользователю о том, что произошло какое-то событие, на которое нужно как-то отреагировать. Давайте разберемся как устроен этот механизм.

В структуре Push Notifications существует специальный сервис в облаке (размещенный за счет мощностей Microsoft), который делает возможность работы уведомлений. Когда устройство хочет получать уведомления от обращается к этому сервису и устанавливает с ним постоянное соединение.

В ответ на это сервис выдает этому устройству уникальный URI, используя который можно отправить по протоколу HTTP некоторое сообщение. Это сообщение получает тот самый сервис в облаке и пересылает его соответствующему устройству. Логично, что для каждого устройства и приложения этот URI будет уникальный.

Таким образом, работу уведомлений в Windows Phone 7 можно описать так:

  1. Устройство устанавливает соединение с сервером Microsoft и получает уникальный HTTP-адрес;
  2. Устройство передает этот HTTP-адрес тому, кто будет уведомлять устройство о чем-либо;
  3. Когда необходимо уведомить устройство о чем-либо, приложение, которому был передан HTTP-адрес отправляет специальное HTTP-сообщение на этот адрес;
  4. Сервис Microsoft получает это сообщение и по возможности доставляет его на устройство. Если доставить сообщение на устройство не удалось, то отправитель получит соответствующее сообщение.

Схематически этот алгоритм можно изобразить следующим образом.

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Существуют три разных вида уведомлений для Windows Phone 7:

  • Tile Notifications — при отправке уведомления указывается URL некоторого изображения, расположенного в сети. Когда устройство получает уведомление оно самостоятельно загружает изображение из сети и обновляет его на рабочем столе устройства. Поскольку в Windows Phone OS CTP, доступной на данный момент размещение своих элементов на рабочем столе недоступно, то мы пока не будем рассматривать этот тип уведомлений и вернемся к нему позже.
  • Toast Notifications — при получении этого типа уведомления на экране устройства всплывает небольшое сообщение, содержащее текст уведомления. При этом приложение в данный момент может быть неактивным. При нажатии на это сообщение пользователь может быстро переключиться к соответствующему уведомлению.
  • Raw Notifications — при получении этого типа уведомления его содержимое передается непосредственно приложению. Приложение в праве обработать содержимое уведомление так, как считает нужным по своему собственному алгоритму. Это наиболее гибкий способ получения уведомлений от внешних сервисов.

Toast Notifications

Впоследствии я расскажу о каждом из типов уведомлений. В этот раз дайте поподробнее рассмотрим Toast Notifications.

Как я уже говорил, этот тип уведомлений позволяет вывести небольшое сообщение на экран пользователя даже в тех случаях, когда само приложение неактивно.

При нажатии на такое уведомление, приложение будет активировано. Давайте создадим приложение, использующее этот тип уведомлений.

Для начала создадим новое приложение Windows Phone 7 и добавим на форму элемент управления, который будет отображать текущий адрес для отправки уведомлений.

Теперь при старте приложения следует соединиться с сервисом уведомлений и получить адрес для отправки уведомлений. Для этих целей следует подключить сборку Microsoft.Phone.Notification и использовать объект HttpNotificationChannel.

Если мы еще не обращались к сервису уведомлений, то необходимо использовать метод Open() и установить соединение; если ранее мы уже обращались к сервису, то нужно просто заново соединиться с сервисом, используя метод Find(). При установлении соединения мы должны указать уникальное имя канала и/или сервиса.

Эти параметры задаются в конструкторе объекта HttpNotificationChannel.

После установления соединения мы можем обратиться к свойству ChannelUri объекта HttpNotificationChannel и получить текущий адрес для уведомлений.

Однако, сервис уведомлений может самостоятельно изменить этот адрес по своему усмотрению.

Для того, чтобы быть в курсе таких изменений следует подписаться на событие ChannelUriUpdated объекта HttpNotificationChannel и обрабатывать изменения адреса там.

После запуска приложения выведем текущий адрес для уведомлений на экран, а также в консоль отладки (чтобы этот адрес можно было скопировать в буфер обмена). Таким образом мы получим небольшой фрагмент кода для приложения Windows Phone 7.

  1. public
  2. partial
  3. class
  4. MainPage
  5. :
  6. PhoneApplicationPage
  7. {
  8. private
  9. HttpNotificationChannel
  10. ;
  11. private
  12. const
  13. string
  14. =
  15. «Some test»
  16. ;
  17. public
  18. MainPage
  19. (
  20. )
  21. {
  22. InitializeComponent
  23. (
  24. )
  25. ;
  26. =
  27. .
  28. |
  29. .
  30. ;
  31. InitializePushChannel
  32. (
  33. )
  34. ;
  35. }
  36. private
  37. void
  38. InitializePushChannel
  39. (
  40. )
  41. {
  42. if
  43. (
  44. !=
  45. null
  46. )
  47. {
  48. ShowUri
  49. (
  50. .
  51. )
  52. ;
  53. }
  54. else
  55. {
  56. try
  57. {
  58. =
  59. new
  60. HttpNotificationChannel
  61. (
  62. .
  63. .
  64. ToString
  65. (
  66. )
  67. ,
  68. )
  69. ;
  70. .
  71. +=
  72. new
  73. EventHandler
  74. (
  75. )
  76. ;
  77. .
  78. Open
  79. (
  80. )
  81. ;
  82. ShowUri
  83. (
  84. .
  85. )
  86. ;
  87. .
  88. BindToShellNotification
  89. (
  90. )
  91. ;
  92. }
  93. catch
  94. (
  95. NotificationChannelExistsException
  96. )
  97. {
  98. =
  99. .
  100. Find
  101. (
  102. .
  103. .
  104. ToString
  105. (
  106. )
  107. )
  108. ;
  109. .
  110. +=
  111. new
  112. EventHandler
  113. (
  114. )
  115. ;
  116. ShowUri
  117. (
  118. .
  119. )
  120. ;
  121. }
  122. }
  123. }
  124. private
  125. void
  126. ShowUri
  127. (
  128. Uri
  129. )
  130. {
  131. if
  132. (
  133. !=
  134. null
  135. )
  136. {
  137. .
  138. BeginInvoke
  139. (
  140. (
  141. )
  142. =>
  143. .
  144. =
  145. .
  146. ToString
  147. (
  148. )
  149. )
  150. ;
  151. .
  152. WriteLine
  153. (
  154. .
  155. ToString
  156. (
  157. )
  158. )
  159. ;
  160. }
  161. }
  162. private
  163. void
  164. notifications_ChannelUriUpdated
  165. (
  166. object
  167. ,
  168. NotificationChannelUriEventArgs
  169. )
  170. {
  171. ShowUri
  172. (
  173. .
  174. )
  175. ;
  176. }
  177. }

notifications notificationServiceName SupportedOrientations SupportedPageOrientationPortrait SupportedPageOrientationLandscape notifications notificationsChannelUri notifications ApplicationCurrent notificationServiceName notificationsChannelUriUpdated notifications_ChannelUriUpdated notifications notificationsChannelUri notifications notifications HttpNotificationChannelApplicationCurrent notificationsChannelUriUpdated notifications_ChannelUriUpdated notificationsChannelUri uri uri Dispatcher ChannelUriText uri Debuguri sender e eChannelUri

На этом создание приложения для устройства завершено. Теперь нам необходимо отправить специальное HTTP-сообщение по адресу для уведомлений. Для этих целей можно использовать различные сторонние утилиты, например, Fiddler. Однако, давайте пройдем путь до конца и создадим приложение, которое будет отправлять соответствующие уведомления по указанному адресу.

Для того, чтобы отправить Toast-уведомление следует использовать следующий формат сообщения:

X-WindowsPhone-Target: toast
Header Text

В данном случае Header и Text – это те значения, которые пользователь увидит у себя на экране. Кроме того, HTTP-сообщение должно иметь заголовок X-NotificationClass, которое отражает важность доставляемого сообщения. Более подробно о формате сообщений и классе важности сообщений можно почитать здесь и здесь.

В ответ на отправляемый HTTP-запрос сервис вернет ответ, в котором содержится два важных HTTP-заголовка — X-DeviceConnectionStatus и X-NotificationStatus. Заголовок X-DeviceConnectionStatus отражает состояние подключения устройства к сервису, а заголовок X-NotificationStatus позволяет понять успешно ли доставлено сообщение.

Теперь, все, что осталось сделать – это отправить соответствующий HTTP-запрос по указанному адресу и обработать результат. Сделаем небольшое консольное приложение в которое поместим следующий код.

  1. class
  2. Program
  3. {
  4. private
  5. const
  6. string
  7. =

Url

@»http://sn1.notify.live.net/throttledthirdparty/01.00/AAFTkavjFpAuT4i1fIKvueDiAgoOs1ADAgAAAAQOMDAwAAAAAAAAAAAAAAA»

  • ;
  • static
  • void
  • Main
  • (
  • string[]
  • )
  • {
  • .
  • Write
  • (
  • «Header: «
  • )
  • ;
  • string
  • =
  • .
  • ReadLine
  • (
  • )
  • ;
  • .
  • Write
  • (
  • «Text: «
  • )
  • ;
  • string
  • =
  • .
  • ReadLine
  • (
  • )
  • ;
  • SendToast
  • (
  • ,
  • ,
  • )
  • ;
  • .
  • ReadLine
  • (
  • )
  • ;
  • }
  • static
  • void
  • SendToast
  • (
  • string
  • ,
  • string
  • ,
  • string
  • )
  • {
  • var
  • =
  • new
  • WebClient
  • (
  • )
  • ;
  • .
  • .
  • Add
  • (
  • «Content-Type»
  • ,
  • «text/html»
  • )
  • ;
  • .
  • .
  • Add
  • (
  • «X-NotificationClass»
  • ,
  • «2»
  • )
  • ;
  • var
  • =
  • «X-WindowsPhone-Target: toast»
  • +
  • .
  • +
  • .
  • +

args Console header Console Console text Console Url header text Console uri header text client clientHeaders clientHeaders message EnvironmentNewLine EnvironmentNewLine

@» {0} {1} «

  1. ;
  2. var
  3. =
  4. .
  5. UploadString
  6. (
  7. ,
  8. «POST»
  9. ,
  10. .
  11. Format
  12. (
  13. ,
  14. ,
  15. )
  16. )
  17. ;
  18. .
  19. WriteLine
  20. (
  21. )
  22. ;
  23. .
  24. WriteLine
  25. (
  26. «Device status is {0}»
  27. ,
  28. .
  29. [
  30. «X-DeviceConnectionStatus»
  31. ]
  32. )
  33. ;
  34. .
  35. WriteLine
  36. (
  37. «Notification status is {0}»
  38. ,
  39. .
  40. [
  41. «X-NotificationStatus»
  42. ]
  43. )
  44. ;
  45. }
  46. }

result clienturi Stringmessage header text Consoleresult Console clientResponseHeaders Console clientResponseHeaders

Теперь при запуске мобильного приложения из консоли отладки получим нужный URI для отправки уведомлений и вставим его в полученное консольное приложение. При запуске консольного приложения укажем значения Header и Text. Если все прошло успешно, в ответ на этот запрос увидим сообщение о доставке уведомления.

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Если теперь взглянуть на экран эмулятора Windows Phone 7, то можно увидеть, что там появилось соответствующее уведомление.

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Обратите внимание, что вместе с сообщением отображается некий значок. Это – значок приложения, который можно легко изменить.

Как видно, создать свое приложение, использующее уведомления очень просто. Ну а в следующий раз я расскажу о том, как использовать Raw Notifications.

Еще раз о многозадачности

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push NotificationsМногозадачность

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

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

  • Вы совершаете звонок и хотите посмотреть при этом список контактов
  • Вы пользуетесь каким-либо приложением или играете, и у вам кто-то звонит или вы получили смс
  • Вы слушаете музыку в фоне

Каким образом Windows Phone 7 обработает эти ситуации?

Согласно статьи на mykindofphone.com:

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

Но вы же не ходите выходить из игры и потерять тем самым накопленные очки/прогресс. Вы кликаете на кнопку Start и открываете свой почтовый ящик.Если приложение поддерживает tombstone, оно будет поставлено на паузу, в то время как вы пишете письмо.

В этом случае можно будет просто вновь запустить игру и начать с того же места.

Поскольку приложение не работает в фоне, телефон потребляет меньше энергии. Аккумулятора соответственно хватит на дольше и вся система в целом будет работать стабильнее.

Из заявления следует, что разработчики должны будут определить, поддерживает ли их приложение/игра tombstoning.

Если поддерживает, то при переключении программа будет ставится на паузу, и никаких неудобств в связи с этим не возникнет. В большинстве случаев.

Однако, если вы захотите запустить в фоне, например, Grooveshark — программу для прослушивания потоковой музыки, сделать этого вы не сможете, по крайней мере в первом релизе WP7.

Отвечая на вопрос Вадима к статье «Еще раз в целом о Windows Phone 7», Zune — родной проигрыватель от MS работать будет, а вот любые другие — нет.

Microsoft отключит сервисы push-уведомлений на Windows Phone 7 и 8

Многозадачность на Windows Phone 7 Series: Microsoft демонстрирует функцию Push Notifications

Смартфонов под управлением Windows Phone 7 и 8.0 оставалось не очень много, и очевидно, что их количество со временем ещё больше сокращается. Из-за этого Microsoft и сторонние разработчики постепенно прекращают поддержку своих сервисов на этих платформах.

Летом прошлого года на Windows Phone 8 окончательно перестал работать Skype, а в конце года и WhatsApp. В скором времени редмондская корпорация вобьёт последний гвоздь в крышку гроба старых версий Windows Phone.

Представители Microsoft сообщили, что собираются отключить сервисы push-уведомлений для смартфонов на Windows Phone 7 и 8.0 уже 20 февраля 2018. Это значит, что:

  • Ваш смартфон больше не будет получать уведомления от любых приложений, будь то мессенджер или почтовый клиент. Работать будут лишь не зависящие от интернета оповещения — например, будильник.
  • Перестанут работать живые плитки в меню Пуск.
  • Функция «Найти телефон» больше не сможет показать вам местоположение телефона.

Отдельно отметим, что всё это касается лишь Windows Phone 7.5, Windows Phone 7.8 и Windows Phone 8.0. Хотя поддержка Windows Phone 8.

1 также прекращена, сервисы push-уведомлений на ней пока никто не отключает.

Пользователи смартфонов на Windows 10 Mobile могут не беспокоиться вовсе — актуальная версия мобильной платформы Microsoft будет официально поддерживаться ещё как минимум полтора года.

: Microsoft продлила период поддержки Windows 10 Mobile.

Хотя подобные действия выглядят не очень красиво, вряд ли они заденут подавляющее большинство владельцев Windows-девайсов. Юзеров Windows Phone 7 в 2018 году не сыскать днём с огнём, а почти все смартфоны на Windows Phone 8.

0 можно обновить до куда более современной Windows Phone 8.1. Есть всего пару сторонних производителей, вроде Huawei, которые решили забыть о поддержке своих устройств и не обновили их до WP 8.1.

В этом случае вам остаётся лишь подумать, стоит ли связываться с девайсами такой фирмы в будущем, и приобрести более актуальный смартфон.

Источник: Microsoft.

+2

 Loading …

Ссылка на основную публикацию
Adblock
detector