Продажи: 1-800-867-1389

Учебник по центрам уведомлений Service Bus (для приложений Магазина Windows)

noteПримечание
Центры уведомлений доступны для ознакомления в Windows Azure Service Bus с января 2013 года. Выпуск центров уведомлений запланирован на середину 2013 года.

noteПримечание
В результате внесения усовершенствований в центры уведомлений, пакет SDK, загруженный до апреля 2013 года, не будет работать с новыми центрами уведомлений. И наоборот, текущий пакет SDK не будет работать с центрами уведомлений, созданными до апреля 2013 года. Начните пользоваться новыми центрами уведомлений в новом пакте SDK, чтобы воспользоваться всеми преимущества новых функций, таких как управление оптимистическим параллелизмом. Поддержка центров уведомлений, созданных до апреля 2013 года, будет прекращена, когда новые центры уведомлений станут общедоступными.

Service Bus Центры уведомлений — это сущности Service Bus, которые позволяют пользователю отправлять push-уведомления для устройств с помощью программных платформ сторонних разработчиков, в частности:

  • службы push-уведомлений Windows (WNS) для Windows 8;

  • службы push-уведомлений Apple (APNs).

  • Служба обмена сообщениями облака Google (GCM).

Вскоре планируется добавление поддержки службы push-уведомлений Microsoft (MPNS) для Windows Phone.

В этом учебнике описывается настройка приложения Магазина Windows (написанного на C#) и простого приложения ASP.NET MVC, которое отправляет шаблонное уведомление посредством WNS.

Можно также ознакомиться с подробным описанием в разделе Инструкция по центрам уведомлений Service Bus (для приложений Магазина Windows) и обзором Центры уведомлений Windows Azure Service Bus. Дополнительные сведения том, как использовать центры уведомлений из приложений на платформе iOS, см. в разделе Инструкция по центрам уведомлений Service Bus (для приложений iOS).

Предварительные требования

Для выполнения задач, описанных в этом учебнике, требуется:

  • учетная запись разработчика в Магазине Windows;

  • предварительная версия пакета SDK для Service Bus для .NET; (пакет SDK — это пакет NuGet, содержащий компонент Service Bus preview features; его можно загрузить здесь; это пакет Service Bus preview features, который содержит новую библиотеку Service Bus — Microsoft.ServiceBus.Preview.dll; чтобы воспользоваться центрами уведомлений, воспользуйтесь этой библиотекой вместо производственной версии (Microsoft.ServiceBus.dll));

  • управляемый код пакета SDK WinRT для Service Bus (этот пакет SDK можно загрузить здесь).

Подготовка к разработке для Windows 8

Для начала разработки приложений для Windows 8 требуется компьютер под управлением ОС Windows 8 и бесплатно загружаемая версия Visual Studio Express или любая другая версия Visual Studio 2012. После создания первого проекта Windows 8 вы получите приглашение создать лицензию разработчика — бесплатную и привязанную к вашей учетной записи разработчика. Лицензия позволяет загружать неопубликованные приложения в современный интерфейс ОС Windows 8.

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

Зарегистрировать учетную запись разработчика в Магазине Windows можно на следующей веб-странице: https://appdev.microsoft.com/StorePortals/en-us/Account/Signup/Start/.

Создание простого приложения Магазина Windows

Удаленное уведомление дает возможность реализовать живые иконки и всплывающие уведомления. Оболочка Windows отвечает за отображение этих элементов и оповещение о них. Приложение информирует ОС Windows о своем ожидании уведомления, и для этого требуется всего несколько строк кода. Если воспользоваться пакетом SDK для центров уведомлений Service Bus, для этого понадобится еще меньше строк кода.

  1. В первую очередь создайте приложение Магазина Windows на основе одного из доступных шаблонов. Создайте в Visual Studio с помощью шаблона Приложение таблицы проект C# Магазина Windows. Присвойте ему имя, например MyPushApp. В центрах уведомлений в качестве отправной точки для широковещательных и адресуемых согласно тегам push-уведомлений, таких как новостные приложения, удобно использовать шаблон приложения таблицы.

  2. Щелкните узел проекта правой кнопкой мыши и выберите меню Магазин. Выберите пункт Связать приложение с Магазином и с помощью мастера свяжите этот проект с регистрацией приложения Магазина Windows. Для этого требуется учетная запись разработчика в Магазине Windows. После входа на экране отобразятся регистрации текущего приложения. Если приложения не зарегистрированы, на следующей странице отобразится пустой список, как показано здесь.

    Приложение Магазина Windows
  3. В противном случае отобразится ссылка для создания регистрации на портале разработчиков. Если у вас есть приложения, эта ссылка будет в первой строке списка. Щелкните ссылку, чтобы перейти к панели администрирования Магазина. Выполните первый шаг и присвойте приложению уникальное имя для Магазина Windows. Не используйте имя MyPushApp, показанное ниже, поскольку оно уже используется.

    Приложение Магазина Windows
  4. После того как имя приложения будет зарезервировано, сохраните его, а затем перейдите к шагу Службы.

    Приложение Магазина Windows
  5. Следуйте ссылке на Live Services, как показано далее.

    Приложение Магазина Windows
  6. В разделе push-уведомлений выберите команду Проверка подлинности службы. Скопируйте два важных фрагмента информации: идентификатор безопасности пакета (SID) и секрет клиента.

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

Создание и настройка центра уведомлений Service Bus

После базовой настройки приложения Windows и заполнения его профиля в Магазине Windows свяжите приложение с новым центром уведомлений Service Bus.

  1. Выполните вход на портал управления Windows Azure. Нажмите кнопку NEW (Создать) в левом нижнем углу страницы.

  2. Перейдите в раздел App Services, Service Bus, Центр уведомлений. Выберите команду Quick Create (Быстрое создание) и введите имя для центра уведомлений. Выберите географический регион и пространство имен Service Bus, в котором создан центр уведомлений. Если доступное пространство имен отсутствует, будет создано новое пространство имен с указанным именем.

    Создание концентратора уведомления Service Bus
  3. Щелкните флажок, чтобы создать центр уведомлений. Выбрав вкладку Service Bus на панели навигации слева, щелкните только что созданное (или повторно использованное) пространство имен. В списке появится новый центр уведомлений.

    Концентратор уведомления Service Bus
  4. Щелкните этот центр уведомлений. Откроется страница просмотра центра уведомлений. Затем в верхней части страницы выберите вкладку Configure (Настройка).

    Концентратор уведомления Service Bus
  5. Вставьте SID пакета и секрет клиента. На панели инструментов внизу нажмите кнопку Save (Сохранить).

  6. Не переходите в другое место. В центре уведомлений щелкните элемент Сведения о подключении и выпишите два строки подключения. Эти значения используются для получения доступа к элементу Notification Hub (Центр уведомлений) во время выполнения. После завершения этой процедуры у вас должны быть эти строки подключения.

    Концентратор уведомления Service Bus

Подключение к приложению

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

Сначала включите поддержку всплывающих уведомлений в манифесте, созданном в Visual Studio 2012.

  1. В обозревателе решений дважды щелкните файл Package.appxmanifest.

  2. Найдите свойство Toast Capable и задайте его равным true, затем сохраните файл и закройте приложение.

    <VisualElements DisplayName="MyPushApp" Logo="Assets\Logo.png"
                    SmallLogo="Assets\SmallLogo.png" Description="App1"
                    ForegroundText="light" BackgroundColor="#464646"
                    ToastCapable="true">
        <DefaultTile ShowName="allLogos" />
        <SplashScreen Image="Assets\SplashScreen.png" />
    </VisualElements>
    
  3. Чтобы этот экземпляр приложения был известен системе, приложение должно быть зарегистрировано в центре уведомлений во время выполнения. Технически, приложение регистрируется в WNS и центре уведомлений, но интерфейс API Service Bus объединяет эти отдельные действия в одно. Он также запоминает параметры после перезапуска приложения. В настройках приложения необходимо предусмотреть для пользователей возможность отключения уведомлений. См. руководство по Магазину Windows. В настоящем пошаговом руководстве эта информация не рассматривается.

  4. Чтобы внедрить клиент push-уведомлений, добавьте ссылку на библиотеку Microsoft.WindowsAzure.Messaging.Managed.dll для WinRT из своего проекта. Загрузите ее здесь.

  5. Щелкните правой кнопкой мыши узел Ссылки в проекте Visual Studio и добавьте новую ссылку. В диалоговом окне перейдите к месту расположения сборки и выберите ее.

  6. Откройте файл App.xaml.cs.

  7. Добавьте следующие операторы using:

    using Microsoft.WindowsAzure.Messaging;
    using System.Threading.Tasks;
    using Windows.Data.Xml.Dom;
    using Windows.UI.Notifications;
    using Windows.Networking.PushNotifications; 
    
    
  8. В классе App добавьте поле для хранения ссылки на класс клиента NotificationHub для приложения — из интерфейса API уведомлений Service Bus:

    sealed partial class App : Application
    {
        NotificationHub notificationHub;
    
    
  9. Инициализируйте notificationHub в конструкторе. Замените connectionstring на полученную ранее строку подключения, связанную с правилом DefaultListenSharedAccessSignature. Это даст возможность создать сигнатуру вызова, которая отвечает правам доступа для добавления новой регистрации. Эта сигнатура не дает никаких дополнительных прав. Замените myhub именем центра уведомлений.

    public App()
    {
        notificationHub = new NotificationHub("myhub", "connectionstring");
    
        this.InitializeComponent();
        this.Suspending += OnSuspending;
    }
    
  10. Добавьте два метода, чтобы инициализировать уведомления и обновлять регистрацию приложения при запуске приложения. Первый — InitializeNotificationsAsync. Этот метод заново получает WNS channelURI и регистрирует его в центре уведомлений.

    async Task InitializeNotificationsAsync()
    {
        var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
    
        await notificationHub.RegisterNativeAsync(channel.Uri);
    }
    
  11. Чтобы добавить функцию инициализации в приложение, отметьте метод OnLaunched как асинхронный и добавьте нужный вызов:

    protected async override void OnLaunched(LaunchActivatedEventArgs args)
    {
        await InitializeNotificationsAsync();
    
  12. Для выполнения регистрации в других режимах активации добавьте этот же вызов переопределения события OnActivated:

    protected async override void OnActivated(IActivatedEventArgs args) {
        base.OnActivated(args);
        await InitializeNotificationsAsync();
    }
    

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

Отправка уведомления с помощью платформы .NET

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

Если используется Visual Studio Express 2012 для Windows 8, перейдите на страницу Visual Studio Express 2012 для Windows Desktop, чтобы создать консольное приложение. Можно также воспользоваться Visual Studio Express 2012 для Web, чтобы создать простое приложение веб-форм.

Независимо от того, будет ли в качестве внутреннего выбрано консольное или веб-приложение, добавьте ссылки на следующие библиотеки:

  • Microsoft.ServiceBus.Preview.dll

  • System.Runtime.Serialization.dll

В приложении веб-форм ASP.NET замените HTML-страницу default.aspx текстовым полем и кнопкой:

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<div>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Send" OnClick="Button1_Click" />
</div>
</asp:Content>

В файле default.aspx.cs добавьте метод Button1_Click и замените myhub именем центра уведомлений. Замените connectionstring на полученную ранее строку подключения DefaultFullSharedAccessSignature.

protected void Button1_Click(object sender, EventArgs e)
{
    var hubClient = NotificationHubClient.CreateClientFromConnectionString("connectionstring", "myhub");
    var toast = "<toast> <visual> <binding template=\"ToastText01\"> <text id=\"1\">Hello! </text> </binding> </visual> </toast>";
    hubClient.SendWindowsNativeNotificationAsync(toast);
}

В приложениях NotificationHubClient создается один раз и используется повторно.

При создании консольного приложения в качестве функции Main() используйте следующие фрагменты. Выполните перечисленные выше замены. Нужное сообщение с уведомлением можно отправить путем вызова приложения со строковым аргументом в кавычках. По умолчанию это сообщение «Hello».

static void Main(string[] args)
{
    var hubClient = NotificationHubClient.CreateClientFromConnectionString("connectionstring", "myhub");
    var toast = "<toast> <visual> <binding template=\"ToastText01\"> <text id=\"1\">Hello! </text> </binding> </visual> </toast>";
    hubClient.SendWindowsNativeNotificationAsync(toast);
}

Любое приложение может отправить событие уведомления. Если зарегистрировано 10 000 экземпляров клиентов, центр уведомлений создает и отправляет 10 000 копий уведомлений и выполняет требуемую обработку ошибок и управление регистрациями. Сведения о том, как отправлять многоплатформенные уведомления, направленные на конкретных пользователей и группы, а также использовать другие дополнительные функции, см. подробное описание Инструкция по центрам уведомлений Service Bus (для приложений Магазина Windows) и обзор Центры уведомлений Windows Azure Service Bus.

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

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

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

  1. Создайте новую или войдите в собственную мобильную службу. Дополнительные сведения мобильных службах см. здесь.

  2. На верхней панели выберите Scheduler (Планировщик).

    Push-уведомления
  3. Создайте новое запланированное задание, вставьте его имя, затем выберите On demand (По требованию).

    Push-уведомления
  4. После создания задания выберите его имя. Затем на верхней панели щелкните Script (Сценарий).

  5. Вставьте приведенный сценарий. Вместо заполнителей обязательно укажите имя центра уведомлений и строку подключения для DefaultFullSharedAccessSignature, полученные ранее. Выберите Save (Сохранить).

    function PushToHub() {
        var azure = require('azure');
        
        var notificationHubService = azure.createNotificationHubService('<hub name>',
        '<connection string>');
    
        notificationHubService.wns.sendToastText01(
            null,
            {
                text1: 'Hello from Mobile Services!!!'
            },
            function (error) {
                if (!error) {
                    console.warn("Notification successful");
                }
        });
    }
    
  6. На нижней панели выберите Run Once (Запустить однажды).

noteПримечание
Для доступа к центрам уведомлений мобильные службы используют пакет SDK Windows Azure для Node.js. Дополнительные сведения пакете SDK Windows Azure для Node.js и центров уведомлений см. здесь.

Как указано выше, если зарегистрировано 10 000 экземпляров клиентов, центр уведомлений создает и отправляет 10 000 копий уведомлений и выполняет требуемую обработку ошибок и управление регистрациями. Сведения о том, как отправлять многоплатформенные уведомления, направленные на конкретных пользователей и группы, а также использовать другие дополнительные функции, см. подробное описание Инструкция по центрам уведомлений Service Bus (для приложений Магазина Windows) и обзор Центры уведомлений Windows Azure Service Bus.

Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв

Добавления сообщества

Показ:
© 2014 Microsoft