Приступаем к работе с push-уведомлениями в Mobile Services

Для знакомства с возможностями платформы  вы можетеактивировать Microsoft Azure бесплатно!

Тема практической работы: использование служб Microsoft Azure Mobile Services для отправки push-уведомлений в приложение Windows Phone 8. Вы научитесь добавлять push-уведомления в проект быстрого запуска с помощью службы push-уведомлений Microsoft Push Notification Service (MPNS). После выполнения работы мобильная служба будет отправлять push-уведомление при каждой вставке записи.

Рассмотрим основные этапы для добавления функции push-уведомлений:

  1. Добавление push-уведомлений в приложение
  2. Обновление скриптов для отправки push-уведомлений
  3. Вставка данных для получения уведомлений

Для выполнения практической работы необходимо следующее:

Эта практическая работа выполняется на основе проекта быстрого запуска служб Mobile Services. Сначала нужно освоить курс Приступаем к работе с Mobile Services.

Примечание

Вам не нужно регистрировать или проверять подлинность приложения в службе MPNS, если ежедневно отправляется менее 500 сообщений на пользователя.

Добавление push-уведомлений в приложение

1. Откройте файл App.xaml.cs и добавьте следующий оператор using:

using Microsoft.Phone.Notification;

2. Добавьте в файл App.xaml.cs строки:

public static HttpNotificationChannel CurrentChannel { get; private set; }   private void AcquirePushChannel()   {       CurrentChannel = HttpNotificationChannel.Find("MyPushChannel");    if (CurrentChannel == null) { CurrentChannel = new HttpNotificationChannel("MyPushChannel");     CurrentChannel.Open();     CurrentChannel.BindToShellTile(); } }

Этот код получает и сохраняет канал для подписки на push-уведомления, а также связывает его с плиткой приложения по умолчанию.

Примечание

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

3.  В верхней части обработчика события Application_Launching (Запуск приложения) в файле App.xaml.cs добавьте вызов нового метода AcquirePushChannel (Получение push-канала):

AcquirePushChannel();

Теперь свойство CurrentChannel (Текущий канал) будет инициализироваться при каждом запуске приложения.

4.  Откройте файл проекта MainPage.xaml.cs и добавьте следующее новое свойство с атрибутом в класс TodoItem:

[DataMember(Name = "channel")] public string Channel { get; set; }

Примечание

Если в мобильной службе включена динамическая схема, то новый столбец 'channel' будет добавляться в таблицу TodoItem автоматически при вставке нового элемента, содержащего данное свойство.

5.  Замените метод обработчика события ButtonSave_Click следующим кодом:

private void ButtonSave_Click(object sender, RoutedEventArgs e) {     var todoItem = new TodoItem { Text = TodoInput.Text,         Channel = App.CurrentChannel.ChannelUri.ToString() };     InsertTodoItem(todoItem); }

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

6.  В обозревателе решений разверните Properties (Свойства), откройте файл WMAppManifest.xml, нажмите вкладку Capabilities (Возможности) и установите флажокID_CAP_PUSH_NOTIFICATION.

Теперь приложение будет получать push-уведомления.

Обновление зарегистрированного скрипта вставки на Портале управления

1. На Портале управления откройте вкладку Data (Данные), затем выберите таблицу TodoItem.

2.  В разделе todoitem перейдите на вкладку Script (Скрипт) и выберите операцию Insert (Вставить).

Будет показан функция, вызываемая при вставке элемента в таблицу TodoItem.

3. Замените функцию вставки следующим кодом и нажмите Save (Сохранить):

function insert(item, user, request) {       request.execute({           success: function () {               // Запись в ответ и отправка уведомления в фоновом режиме               request.respond();               push.mpns.sendFlipTile(item.channel, {                 title: item.text             }, {                 success: function (pushResponse) {                     console.log("Sent push:", pushResponse);                 }             });         }     }); }

Этот код регистрирует новый скрипт вставки, в котором объект mpns используется для отправки push-уведомления (вставленного текста) в канал, предоставленный по запросу вставки.

Проверка push-уведомлений в приложении

1. В Visual Studio выберите Deploy Solution (Развернуть решение) в меню Build (Выполнять построение).

2. В эмуляторе откройте список установленных приложений  с помощью прокрутки влево и найдите новое приложение TodoList.

3. Коснитесь и удерживайте значок приложения, а затем выберите pin to start (Закрепить в меню "Пуск")  из контекстного меню.

В результате плитка с именем TodoList будет закреплена в меню "Пуск".

4.  Чтобы запустить приложение, коснитесь плитки с именем TodoList.

5. После запуска приложения введите текст "hello push" в текстовое поле и нажмите Save (Сохранить).

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

6. Чтобы вернуться в меню "Пуск",нажмите кнопку Start (Пуск).

Убедитесь, что приложение получило push-уведомление и теперь плитка называется hello push.