Självstudie: Skicka meddelanden till Universell Windows-plattform appar med Hjälp av Azure Notification Hubs

I den här självstudiekursen kommer du att skapa en meddelandehubb för att skicka push-meddelanden till en Windows Universal Platform-app (UWP). Du skapar en tom Windows Store-app som tar emot push-meddelanden med hjälp av Windows Push Notification Service (WNS). Sedan använder du meddelandehubben för att skicka push-meddelanden till alla enheter som kör din app.

Kommentar

Du hittar den färdiga koden för den här självstudiekursen på GitHub.

Du utför följande steg:

  • Skapa en app i Windows Store
  • Skapa en meddelandehubb
  • Skapa en Windows-exempelapp
  • Skicka testmeddelanden

Förutsättningar

  • Azure-prenumeration. Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt Azure-konto innan du börjar.
  • Microsoft Visual Studio 2017 eller senare. I exemplet i den här självstudien används Visual Studio 2019.
  • Installerade verktyg för UWP-apputveckling
  • Ett aktivt Windows Store-konto
  • Bekräfta att inställningen Hämta meddelanden från appar och andra avsändare är aktiverad.
    • Starta Inställningar fönster på datorn.
    • Välj panelen System .
    • Välj Meddelanden och åtgärder på den vänstra menyn.
    • Bekräfta att inställningen Hämta meddelanden från appar och andra avsändare är aktiverad. Om den inte är aktiverad aktiverar du den.

Du måste slutföra den här självstudiekursen innan du börjar någon annan kurs om Notification Hubs för UWP-appar.

Skapa en app i Windows Store

Kommentar

Microsoft Push Notification Service (MPNS) har blivit inaktuell och stöds inte längre.

Om du vill skicka push-meddelanden till UWP-appar, associerar du din app med Windows Store. Konfigurera sedan meddelandehubben för att integrera den med WNS.

  1. Navigera till Windows Dev Center, logga in med ditt Microsoft-konto och välj sedan Skapa en ny app.

    New app button

  2. Ange ett namn på appen och markera sedan Reservera produktnamn. På så sätt skapas en ny Windows Store-registrering för din app.

    Store app name

  3. Expandera Produkthantering och välj sedan Produktidentitet. Anteckna värdena Package SID, Package/Identity/Name, Package/Identity/Publisher och Package/Properties/PublisherDisplayName .

    Partner center apps

  4. Under Produkthantering väljer du WNS/MPNS och sedan Appregistreringsportal. Logga in på ditt Microsoft-konto. Programregistreringssidan öppnas på en ny flik.

    WNS page

  5. Under Essentials väljer du Klientautentiseringsuppgifter: Lägg till ett certifikat eller en hemlighet.

    Notification Hub settings on Azure portal

  6. På sidan Certifikat och hemligheter går du till Klienthemligheter och väljer Ny klienthemlighet. När du har skapat en klienthemlighet (kallas även en programhemlighet) bör du anteckna den innan du lämnar sidan.

    Varning

    Du kan bara visa klienthemlighetsvärden (programhemlighet) omedelbart efter att du har skapat dem. Spara hemligheten innan du lämnar sidan.

    Client secret on portal

    Varning

    Programhemligheten och paket-SID:et är viktiga säkerhetsuppgifter. Lämna aldrig ut dessa uppgifter till någon och distribuera dem inte tillsammans med din app.

Skapa en meddelandehubb

  1. Logga in på Azure-portalen.

  2. Välj Alla tjänster på den vänstra menyn. A screenshot showing select All Services for an existing namespace.

  3. Skriv Notification Hubs i textrutan Filtertjänster . Välj stjärnikonen bredvid tjänstnamnet för att lägga till tjänsten i avsnittet FAVORITER på den vänstra menyn. Välj Notification Hubs.

    A screenshot showing how to filter for notification hubs.

  4. På sidan Notification Hubs väljer du Skapa i verktygsfältet.

    A screenshot showing how to create a new notification hub.

  5. Gör följande på fliken Grundläggandesidan Notification Hub:

    1. I Prenumeration väljer du namnet på den Azure-prenumeration som du vill använda och väljer sedan en befintlig resursgrupp eller skapar en ny.

    2. Ange ett unikt namn för det nya namnområdet i Namnområdesinformation.

    3. Ett namnområde innehåller en eller flera meddelandehubbar, så skriv ett namn för hubben i Meddelandehubbens information.

    4. Välj ett värde i listrutan Plats . Det här värdet anger den plats där du vill skapa hubben.

      Screenshot showing notification hub details.

    5. Granska alternativet Tillgänglighetszoner. Om du väljer en region som har tillgänglighetszoner markeras kryssrutan som standard. Tillgänglighetszoner är en betald funktion, så en extra avgift läggs till på din nivå.

    6. Välj ett alternativ för haveriberedskap : Ingen, Länkad återställningsregion eller Flexibel återställningsregion. Om du väljer Länkad återställningsregion visas redundansregionen. Om du väljer Flexibel återställningsregion använder du listrutan för att välja från en lista över återställningsregioner.

      Screenshot showing availability zone details.

    7. Välj Skapa.

  6. När distributionen är klar väljer du Gå till resurs.

Konfigurera WNS-inställningar för hubben

  1. I kategorin MEDDELANDEINSTÄLLNINGAR väljer du Windows (WNS).

  2. Ange värden för Paket-SID (som den här "ms-app://<Your Package SID>") och säkerhetsnyckeln (programhemligheten) som du antecknade i föregående avsnitt.

  3. Klicka på Spara i verktygsfältet.

    The Package SID and Security Key boxes

Din meddelandehubb har nu konfigurerats för att fungera med WNS. Du har anslutningssträngarna för att registrera din app och skicka meddelanden.

Skapa en Windows-exempelapp

  1. I Visual Studio öppnar du menyn Arkiv. Välj Nytt och sedan Projekt.

  2. Slutför följande steg i dialogrutan Skapa ett nytt projekt:

    1. I sökrutan längst upp skriver du Windows Universal.

    2. I sökresultaten väljer du Tom app (Universell Windows) och sedan Nästa.

      New Project dialog

    3. I dialogrutan Konfigurera det nya projektet anger du ett projektnamn och en plats för projektfilerna.

    4. Välj Skapa.

  3. Acceptera standardinställningarna för mål- och minimumplattformsversioner och välj OK.

  4. Högerklicka på Windows Store-appprojektet i Solution Explorer, välj Publicera och välj sedan Associera app med Store. Guiden Associera din app med Windows Store visas.

  5. I guiden loggar du in med ditt Microsoft-konto.

  6. Välj den app som du registrerade i steg 2, väljer Nästa och välj sedan Associera. På så sätt läggs den registreringsinformation som krävs för Windows Store till i programmanifestet.

  7. Högerklicka på lösningen i Vision Studio och välj sedan Hantera NuGet-paket. Fönstret Hantera NuGet-paket öppnas.

  8. I sökrutan anger du WindowsAzure.Messaging.Managed, väljer Installera och godkänner användningsvillkoren.

    The Manage NuGet Packages window

    Den här åtgärden hämtar, installerar och lägger till en referens i Azure Notification Hubs-biblioteket för Windows med hjälp av Microsoft.Azure.Notification Hubs-NuGet-paketet.

  9. Öppna App.xaml.cs-projektfilen och lägg till följande instruktioner:

    using Windows.Networking.PushNotifications;
    using Microsoft.WindowsAzure.Messaging;
    using Windows.UI.Popups;
    
  10. Leta upp klassen i App projektets App.xaml.cs fil och lägg till följande InitNotificationsAsync metoddefinition. Ersätt <your hub name> med namnet på meddelandehubben som du skapade i Azure-portalen och ersätt <Your DefaultListenSharedAccessSignature connection string> med DefaultListenSharedAccessSignature anslutningssträng från sidan Åtkomstprinciper i meddelandehubben:

    private async void InitNotificationsAsync()
    {
        var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
    
        var hub = new NotificationHub("<your hub name>", "<Your DefaultListenSharedAccessSignature connection string>");
        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();
        }
    }
    

    Den här koden hämtar URI-kanalen för appen från WNS och registrerar sedan denna med din meddelandehubb.

    Kommentar

    Ersätt platshållaren hub name med namnet på den meddelandehubb som visas i Azure-portalen. Byt även ut platshållaren för anslutningssträngen mot den DefaultListenSharedAccessSignature-anslutningssträng som du fick från sidan Åtkomstpolicyer i meddelandehubben i ett tidigare avsnitt.

  11. Längst upp i OnLaunched-händelsehanteraren i App.xaml.cs lägger du till följande anrop till den nya InitNotificationsAsync-metoden:

    InitNotificationsAsync();
    

    Den här åtgärden garanterar att kanal-URI registreras i meddelandehubben varje gång programmet startas.

  12. Högerklicka Package.appxmanifest och välj Visa kod (F7). Leta upp <Identity .../> och ersätt värdet Namn med värdet Package/Identity/Name och ersätt dess Publisher-värde med värdet Package/Identity/Publisher från appen som du skapade tidigare.

  13. Kör appen genom att trycka på F5 på tangentbordet. En dialogruta som innehåller registreringsnyckeln visas. Stäng dialogrutan genom att klicka på OK.

    Registration successful

Appen är nu redo att ta emot popup-meddelanden.

Skicka testmeddelanden

Du kan snabbt testa att ta emot meddelanden i appen genom att skicka meddelanden från Azure-portalen.

  1. Växla till fliken Översikt i Azure Portal och välj Testskicka i verktygsfältet.

    Test Send button

  2. Utför följande i fönstret Testskicka:

    1. Välj Windows under Plattformar.

    2. Välj Toast under Meddelandetyp.

    3. Välj Skicka.

      The Test Send pane

  3. Se resultatet av Send-åtgärden i listan Resultat längst ned i fönstret. Du kan också se ett varningsmeddelande.

    Result of Send operation

  4. Aviseringsmeddelandet Testmeddelande visas på skrivbordet.

    Notification message

Nästa steg

Du har skickat sändningsmeddelanden till alla dina Windows-enheter med hjälp av portalen eller en konsolapp. Information om hur du skickar meddelanden till specifika enheter finns i följande självstudie: