Přidání nabízených oznámení do aplikace pro Windows

Přehled

V tomto kurzu přidáte nabízená oznámení do projektu Rychlý start pro Windows , aby se do zařízení při každém vložení záznamu odeslalo nabízené oznámení.

Pokud stažený projekt serveru rychlý start nepoužíváte, budete potřebovat balíček rozšíření nabízených oznámení. Další informace najdete v tématu Práce se sadou SDK back-endového serveru .NET pro Azure Mobile Apps .

Konfigurace centra oznámení

Funkce Mobile Apps Azure App Service používá k odesílání nabízených oznámení službu Azure Notification Hubs, takže pro mobilní aplikaci nakonfigurujete centrum oznámení.

  1. V Azure Portal přejděte do App Services a pak vyberte back-end vaší aplikace. V části Nastavení vyberte Nabízená oznámení.

  2. Pokud chcete do aplikace přidat prostředek centra oznámení, vyberte Připojit. Můžete buď vytvořit centrum, nebo se připojit k existujícímu.

    Konfigurace centra

Teď jste připojili centrum oznámení k back-endovém projektu Mobile Apps. Později nakonfigurujete toto centrum oznámení tak, aby se připojilo k systému oznámení platformy (PNS) pro nabízení do zařízení.

Registrace aplikace pro nabízená oznámení

Potřebujete odeslat aplikaci do Microsoft Storu a pak nakonfigurovat serverový projekt tak, aby se integrovali se službou WNS (Windows Push Notification Services) pro odesílání nabízených oznámení.

  1. V sadě Visual Studio Průzkumník řešení klikněte pravým tlačítkem myši na projekt aplikace UPW, klikněte na Store>Přidružit aplikaci ke Storu....

    Přidružení aplikace k Microsoft Storu

  2. V průvodci klikněte na Další, přihlaste se pomocí svého účtu Microsoft, zadejte název aplikace v části Rezervovat nový název aplikace a klikněte na Rezervovat.

  3. Po úspěšném vytvoření registrace aplikace vyberte nový název aplikace, klikněte na Další a potom klikněte na Přidružit. Tím se do manifestu aplikace přidají požadované registrační informace z Microsoft Storu.

  4. Přejděte na portál pro registraci aplikací a přihlaste se pomocí svého účtu Microsoft. Klikněte na aplikaci pro Windows Store, kterou jste přidružli v předchozím kroku.

  5. Na stránce registrace si poznamenejte hodnotu v části Tajné kódy aplikace a IDENTIFIKÁTOR SID balíčku, který budete dál používat ke konfiguraci back-endu mobilní aplikace.

    Přidružení aplikace k Microsoft Storu

    Důležité

    Tajný klíč klienta a SID balíčku jsou důležitá pověření zabezpečení. Tyto hodnoty s nikým nesdílejte ani je nedistribuujte s vaší aplikací. ID aplikace se používá s tajným kódem ke konfiguraci ověřování účtu Microsoft.

App Center obsahuje také pokyny pro konfiguraci aplikací pro UPW pro nabízená oznámení.

Konfigurace back-endu pro odesílání nabízených oznámení

  1. V Azure Portal vyberte Procházet všechny>služby App Services. Pak vyberte back-end Mobile Apps. V části Nastavení vyberte App Service Nabízené oznámení. Pak vyberte název centra oznámení.

  2. Přejděte do Windows (WNS). Pak zadejte klíč zabezpečení (tajný klíč klienta) a identifikátor SID balíčku, který jste získali z lokality Live Services. Pak vyberte Uložit.

    Nastavení klíče WNS na portálu

Back-end je teď nakonfigurovaný tak, aby k odesílání nabízených oznámení používal WNS.

Aktualizace serveru tak, aby odesílala nabízená oznámení

Použijte níže uvedený postup, který odpovídá vašemu typu back-endového projektu – back-endu .NET nebo Node.js back-endu.

Back-endový projekt .NET

  1. V sadě Visual Studio klikněte pravým tlačítkem na projekt serveru a klikněte na Spravovat balíčky NuGet, vyhledejte Microsoft.Azure.NotificationHubs a potom klikněte na Nainstalovat. Tím se nainstaluje klientská knihovna Notification Hubs.

  2. Rozbalte kontrolery, otevřete TodoItemController.cs a přidejte následující příkazy using:

    using System.Collections.Generic;
    using Microsoft.Azure.NotificationHubs;
    using Microsoft.Azure.Mobile.Server.Config;
    
  3. V PostTodoItem metoda přidejte následující kód za volání InsertAsync:

    // Get the settings for the server project.
    HttpConfiguration config = this.Configuration;
    MobileAppSettingsDictionary settings =
        this.Configuration.GetMobileAppSettingsProvider().GetMobileAppSettings();
    
    // Get the Notification Hubs credentials for the Mobile App.
    string notificationHubName = settings.NotificationHubName;
    string notificationHubConnection = settings
        .Connections[MobileAppSettingsKeys.NotificationHubConnectionString].ConnectionString;
    
    // Create the notification hub client.
    NotificationHubClient hub = NotificationHubClient
        .CreateClientFromConnectionString(notificationHubConnection, notificationHubName);
    
    // Define a WNS payload
    var windowsToastPayload = @"<toast><visual><binding template=""ToastText01""><text id=""1"">"
                            + item.Text + @"</text></binding></visual></toast>";
    try
    {
        // Send the push notification.
        var result = await hub.SendWindowsNativeNotificationAsync(windowsToastPayload);
    
        // Write the success result to the logs.
        config.Services.GetTraceWriter().Info(result.State.ToString());
    }
    catch (System.Exception ex)
    {
        // Write the failure result to the logs.
        config.Services.GetTraceWriter()
            .Error(ex.Message, null, "Push.SendAsync Error");
    }
    

    Tento kód říká centru oznámení, aby po vložení nové položky odeslal nabízené oznámení.

  4. Znovu publikujte projekt serveru.

Node.js back-endový projekt

  1. Nastavte back-endový projekt.

  2. Nahraďte existující kód v souboru todoitem.js následujícím kódem:

    var azureMobileApps = require('azure-mobile-apps'),
    promises = require('azure-mobile-apps/src/utilities/promises'),
    logger = require('azure-mobile-apps/src/logger');
    
    var table = azureMobileApps.table();
    
    table.insert(function (context) {
    // For more information about the Notification Hubs JavaScript SDK,
    // see https://aka.ms/nodejshubs
    logger.info('Running TodoItem.insert');
    
    // Define the WNS payload that contains the new item Text.
    var payload = "<toast><visual><binding template=\ToastText01\><text id=\"1\">"
                                + context.item.text + "</text></binding></visual></toast>";
    
    // Execute the insert.  The insert returns the results as a Promise,
    // Do the push as a post-execute action within the promise flow.
    return context.execute()
        .then(function (results) {
            // Only do the push if configured
            if (context.push) {
                // Send a WNS native toast notification.
                context.push.wns.sendToast(null, payload, function (error) {
                    if (error) {
                        logger.error('Error while sending push notification: ', error);
                    } else {
                        logger.info('Push notification sent successfully!');
                    }
                });
            }
            // Don't forget to return the results from the context.execute()
            return results;
        })
        .catch(function (error) {
            logger.error('Error while running context.execute: ', error);
        });
    });
    
    module.exports = table;
    

    Tím se odešle informační zpráva WNS, která obsahuje položku.text při vložení nové položky úkolu.

  3. Při úpravě souboru na místním počítači znovu publikujte serverový projekt.

Přidání nabízených oznámení do aplikace

V dalším kroku se vaše aplikace musí při spuštění zaregistrovat k nabízeným oznámením. Pokud už máte povolené ověřování, před registrací nabízených oznámení se ujistěte, že se uživatel přihlásí.

  1. Otevřete soubor projektu App.xaml.cs a přidejte následující using příkazy:

    using System.Threading.Tasks;
    using Windows.Networking.PushNotifications;
    
  2. Do stejného souboru přidejte do třídy App následující definici metody InitNotificationsAsync:

    private async Task InitNotificationsAsync()
    {
        // Get a channel URI from WNS.
        var channel = await PushNotificationChannelManager
            .CreatePushNotificationChannelForApplicationAsync();
    
        // Register the channel URI with Notification Hubs.
        await App.MobileService.GetPush().RegisterAsync(channel.Uri);
    }
    

    Tento kód načte identifikátor ChannelURI aplikace ze služby WNS a pak tento identifikátor ChannelURI zaregistruje ve vaší App Service Mobilní aplikaci.

  3. V horní části obslužné rutiny události OnLaunched v App.xaml.cs přidejte modifikátor async do definice metody a přidejte následující volání nové initNotificationsAsync metoda, jako v následujícím příkladu:

    protected async override void OnLaunched(LaunchActivatedEventArgs e)
    {
        await InitNotificationsAsync();
    
        // ...
    }
    

    To zaručuje, že se při každém spuštění aplikace zaregistruje krátkodobý identifikátor ChannelURI.

  4. Znovu sestavte projekt aplikace pro UPW. Vaše aplikace je teď připravena přijímat oznámení informačního nápisu.

Testování nabízených oznámení v aplikaci

  1. Klikněte pravým tlačítkem myši na projekt Windows Store, klikněte na Nastavit jako spouštěný projekt a stisknutím klávesy F5 spusťte aplikaci pro Windows Store.

    Po spuštění aplikace se zařízení zaregistruje pro nabízená oznámení.

  2. Zastavte aplikaci pro Windows Store a opakujte předchozí krok pro aplikaci Windows Phone Store.

    V tuto chvíli jsou obě zařízení zaregistrovaná pro příjem nabízených oznámení.

  3. Spusťte aplikaci pro Windows Store znovu a zadejte text do pole Vložení todoItem a potom klikněte na Uložit.

    Všimněte si, že po dokončení vložení obdrží windows Store i aplikace Windows Phone nabízené oznámení ze služby WNS. Oznámení se zobrazí na Windows Phone i v případech, kdy aplikace není spuštěná.

Další kroky

Další informace o nabízených oznámeních:

Zvažte pokračování v jednom z následujících kurzů:

  • Přidání ověřování do vaší aplikace Zjistěte, jak ověřovat uživatele vaší aplikace pomocí zprostředkovatele identity.
  • Povolení offline synchronizace pro vaši aplikaci Zjistěte, jak přidat offline podporu aplikace pomocí back-endu mobilní aplikace. Offline synchronizace umožňuje koncovým uživatelům pracovat s mobilní aplikací – prohlížením, přidáváním nebo úpravou dat – i v případě, že připojení k síti neexistuje.