Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Microsoft Разработка приложений Облако/Azure Windows Azure Mobile Services – краткое руководство по использованию. Часть 4 RSS

Windows Azure Mobile Services – краткое руководство по использованию. Часть 4

Текущий рейтинг: 0 (проголосовало 0)
 Посетителей: 317 | Просмотров: 391 (сегодня 0)  Шрифт: - +

Push-уведомления с помощью Mobile Services

Для того, чтобы отправлять push-уведомления в ваше приложение с использованием Windows Azure Mobile Services, необходимо воспользоваться сервисом Windows Push Notification (WNS). Результатом этой части руководства будет то, что мобильный сервис будет посылать push-уведомление всякий раз, когда будет вставлена новая запись. .

Регистрация в Магазине Windows

Для отправки push-уведомлений в приложения Магазина Windows из мобильного сервиса, вы должны зарегистрировать ваше приложение в Магазине, после чего настроить соответствующим образом мобильный сервис для интеграции с WNS.

Перейдите на странице регистрации приложения - Submit an app, войдите с вашим аккаунтом Microsoft и нажмите Appname (рисунок 1).

*
Увеличить

Рис. 1. Добавление приложения в Магазин Windows

Введите название вашего приложения в поле Appname, нажмите Reserveappname и Save (рисунок 2).

*
Увеличить

Рис. 2. Добавление приложения в Магазин Windows

Откройте созданный ранее проект и, нажав правой кнопкой мыши на названии проекта, нажмите Store=>AssociateAppwiththeStore.... (рисунок 3).

*
Увеличить

Рис. 3. Интерфейс Visual Studio 2012

Нажмите Sign in и войдите в систему с вашим аккаунтом Microsoft. Выберите зарегистрированное ранее приложение и нажмите Next=>Associate (рисунок 4).

*
Увеличить

Рис. 4. Добавление приложения в Магазин Windows

Перейдите на страницу My Applications page и выберите ваше приложение из списка (рисунок 5).

*
Увеличить

Рис. 5. Настройки приложения

В API Settings запишите значения Client secret и Package security identifier (SID) (рисунок 6).

*
Увеличить

Рис. 6. Настройки приложения

Перейдите на портал управления. Выберите на вкладке MobileServices ваше приложение (рисунок 7).

*
Увеличить

Рис. 7. Портал управления Windows Azure

На вкладке Push введите записанные ранее значения Client secret и Package SID и нажмите Save (рисунок 8).

*
Увеличить

Рис. 8. Настройки push-уведомлений

Интеграция мобильного сервиса и приложения с WNS проведена успешно.

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

Добавьте в файл App.xaml.cs:

using Windows.Networking.PushNotifications;

//Добавьте в файл App.xaml.cs:

public static PushNotificationChannel CurrentChannel { get; private set; }

 private async void AcquirePushChannel()

{

    CurrentChannel =

            await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

}

В этом коде получается и сохраняется канал push-уведомлений.

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

AcquirePushChannel();

//Добавьте в MainPage.xaml.cs в класс TodoItem новое свойство:

[DataMember(Name = "channel")]

 public string Channel { get; set; }

//Замените метод ButtonSave_Click:

private void ButtonSave_Click(object sender, RoutedEventArgs e)

    {

        var todoItem = new TodoItem { Text = TextInput.Text, Channel = App.CurrentChannel.Uri };

        InsertTodoItem(todoItem);

    }

Если вы используете собственный проект, а не сгенерированный на портале управления, откройте Package.appxmanifest file и убедитесь, что на вкладке Application UI значение Toast capable определено как Yes (рисунок 9).

*
Увеличить

Рис. 9. Включения уведомлений

Таким образом приложение сможет использовать всплывающие уведомления.

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

На портале управления перейдите на вкладку Data и выберите таблицу TodoItem (рисунок 10).

*
Увеличить

Рис. 10. Портал управления Windows Azure

На вкладке Script нажмите Insert (рисунок 11).

*
Увеличить

Рис. 11. Портал управления Windows Azure

Замените функцию вставки на следующий код, и нажмите Save:

function insert(item, user, request) {

    request.execute({

        success: function() {

            // записать в ответ и отослать

 // уведомление в фоне

 request.respond();

 push.wns.sendToastText04(item.channel, {

 text1: item.text

 }, {

 success: function(pushResponse) {

 console.log("Sent push:", pushResponse);

 }

 });

 }

 });

 }

Таким образом регистрируется новый скрипт, обрабатывающий операцию вставки и отсылающий push-уведомлений (вставленный текст) в канал, предоставленный запросов на вставку.

Запуск приложения

Запустите приложение, введите текст в поле InsertaTodoItem и нажмите Save (рисунок 12).

*
Увеличить

Рис. 12. Интерфейс приложения

Обратите внимание, что после вставки сущности приложение получит push-уведомление от WNS (рисунок 13).

*
Увеличить

Рис. 13. Интерфейс приложения

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

Создание новой таблицы

На портале управления перейдите на вкладку MobileServices и выберите ваше приложение (рисунок 14).

*
Увеличить

Рис. 14. Портал управления Windows Azure

На вкладке Data нажмите Create (рисунок 15).

*
Увеличить

Рис. 15. Портал управления Windows Azure

В открывшемся диалоге введите в поле Tablename значение Channel, остальные значения оставьте стандартными (рисунок 16). Нажмите кнопку.

*
Увеличить

Рис. 16. Создание новой таблицы

В новой таблице будут храниться URI каналов, которые будут использоваться при посылке push-уведомлений отдельно от данных сущности.

Обновление приложения

Удалите из MainPage.xaml.cs свойство Channel в классе TodoItem . Класс должен выглядеть так:

public class TodoItem

{

    public int Id { get; set; }


[DataMember(Name = "text")]

public string Text { get; set; }

 [DataMember(Name = "complete")]

public bool Complete { get; set; }

}

Замените метод ButtonSave_Click:

private void ButtonSave_Click(object sender, RoutedEventArgs e)

{
 var todoItem = new TodoItem { Text = TextInput.Text };

    InsertTodoItem(todoItem);

}

//Добавьте код, создающий новый класс Channel:

public class Channel

{
public int Id { get; set; }


[DataMember(Name = "uri")]

public string Uri { get; set; }

 }

//Замените в файле App.xaml.cs метод AcquirePushChannel:

private async void AcquirePushChannel()

{

    CurrentChannel =

        await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

 IMobileServiceTable<Channel> channelTable = App.MobileService.GetTable<Channel>();

var channel = new Channel { Uri = CurrentChannel.Uri };

await channelTable.InsertAsync(channel);





}

В этом коде происходит вставка текущего канала в таблицу Channel.

Обновление серверных скриптов

На портале управления на вкладке Data выберите таблицу Channel (рисунок 18).

*
Увеличить

Рис. 18. Портал управления Windows Azure

На вкладке Script нажмите Insert (рисунок 19).

*
Увеличить

Рис. 19. Портал управления Windows Azure

Замените функцию вставки (Insert) и нажмите Save:

function insert(item, user, request) {

    var channelTable = tables.getTable('Channel');

    channelTable

        .where({ uri: item.uri })

        .read({ success: insertChannelIfNotFound });

 function insertChannelIfNotFound(existingChannels) {

    if (existingChannels.length > 0) {

        request.respond(200, existingChannels[0]);

    } else {

        request.execute();

    }

}





}

Скрипт проверяет таблицу Channel на наличие каналов с идентичным URI и, в том случае, если такового нет, происходит вставка канала.

Нажмите Script и выберите Insert (рисунок 20).

*
Увеличить

Рис. 20. Портал управления Windows Azure

Замените функцию вставки и нажмите Save:

function insert(item, user, request) {

    request.execute({

        success: function() {

            request.respond();

            sendNotifications();

        }

    });

 function sendNotifications() {

    var channelTable = tables.getTable('Channel');

    channelTable.read({

        success: function(channels) {

            channels.forEach(function(channel) {

                push.wns.sendToastText04(channel.uri, {

                    text1: item.text

                }, {

                    success: function(pushResponse) {

                        console.log("Sent push:", pushResponse);

                    }

                });

            });

        }

    });

}

 }

Скрипт вставки будет отправлять push-уведомление с текстом вставленной сущности во все каналы, хранящиеся в таблице Channel.

Запуск приложения

Запустите приложение и введите текст в поле InsertaTodoItem, после чего нажмите Save (рисунок 21).

*
Увеличить

Рис. 21. Интерфейс приложения

Запустите на нескольких машинах ваше приложение и повторите процедуру, обратите внимание, что везде будет приходить push-уведомление от WNS (рисунок 22).

*
Увеличить

Рис. 22. Интерфейс приложения

Иcточник: MSDN  •  Опубликована: 09.07.2013
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:  


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.