Självstudie: skicka push-meddelanden till iOS-appar med hjälp av Azure Notification HubsTutorial: Send push notifications to iOS apps using Azure Notification Hubs

I den här självstudien använder du Azure Notification Hubs för att skicka push-meddelanden till ett iOS-program.In this tutorial, you use Azure Notification Hubs to send push notifications to an iOS application. Du skapar en tom iOS-app som tar emot push-meddelanden med hjälp av Apple Push Notification Service (APNS).You create a blank iOS app that receives push notifications by using the Apple Push Notification service (APNs).

I den här självstudien gör du följande:In this tutorial, you take the following steps:

  • Generera filen för begäran om certifikatsigneringGenerate the certificate signing request file
  • Registrera din app för push-meddelandenRequest your app for push notifications
  • Skapa en etableringsprofil för appenCreate a provisioning profile for the app
  • Konfigurera din meddelandehubb för att skicka push-meddelanden till iOSConfigure your notification hub for iOS push notifications
  • Anslut iOS-appen till meddelandehubbarConnect your iOS app to notification hubs
  • Skicka test-push-meddelandenSend test push notifications
  • Verifiera att din app tar emot push-meddelandenVerify that your app receives notifications

Du hittar den fullständiga koden för den här självstudien på GitHub.The complete code for this tutorial can be found on GitHub.

KravPrerequisites

För att slutföra den här självstudien, finns följande förhandskrav:To complete this tutorial, you need the following prerequisites:

Du måste slutföra den här självstudiekursen innan du börjar någon annan kurs om Notification Hubs för iOS-appar.Completing this tutorial is a prerequisite for all other Notification Hubs tutorials for iOS apps.

Generera filen för certifikat signerings förfråganGenerate the certificate-signing request file

Apple Push Notification Service (APN) använder certifikat för att autentisera dina push-meddelanden.The Apple Push Notification Service (APNs) uses certificates to authenticate your push notifications. Följ de här instruktionerna för att skapa nödvändiga push-certifikat för att skicka och ta emot meddelanden.Follow these instructions to create the necessary push certificate to send and receive notifications. Mer information om de här koncepten finns i den officiella Apple Push Notification Service-dokumentationen.For more information on these concepts, see the official Apple Push Notification Service documentation.

Generera CSR-filen (certifikat signerings förfrågan) som Apple använder för att generera ett signerat Push-certifikat.Generate the Certificate Signing Request (CSR) file, which Apple uses to generate a signed push certificate.

  1. Kör Nyckelhanteraren på din Mac.On your Mac, run the Keychain Access tool. Den kan öppnas från mappen verktyg eller den andra mappen i Start fönstret.It can be opened from the Utilities folder or the Other folder on the Launchpad.

  2. Välj nyckel rings åtkomst, expandera certifikat assistentenoch välj sedan begär ett certifikat från en certifikat utfärdare.Select Keychain Access, expand Certificate Assistant, and then select Request a Certificate from a Certificate Authority.

    Använd nyckelhanterare för att begära ett nytt certifikat

    Anteckning

    Som standard väljer åtkomst till nyckel ringar det första objektet i listan.By default, Keychain Access selects the first item in the list. Detta kan vara ett problem om du befinner dig i kategorin certifikat och certifikat utfärdaren Apple Worldwide Developer relation är inte det första objektet i listan.This can be a problem if you're in the Certificates category and Apple Worldwide Developer Relations Certification Authority is not the first item in the list. Kontrol lera att du har ett objekt som inte är ett nyckel objekt, eller att nyckeln för certifikat utfärdare för Apple Worldwide Developer-relation är vald, innan du genererar CSR (certifikat signerings förfrågan).Make sure you have a non-key item, or the Apple Worldwide Developer Relations Certification Authority key is selected, before generating the CSR (Certificate Signing Request).

  3. Välj din användar-e-postadress, ange ditt eget namn -värde, kontrol lera att du har angett Spara på diskoch välj sedan Fortsätt.Select your User Email Address, enter your Common Name value, make sure that you specify Saved to disk, and then select Continue. Lämna ca-e-postadress tomt eftersom det inte behövs.Leave CA Email Address blank as it isn't required.

    Nödvändig certifikatsinformation

  4. Ange ett namn på CSR-filen i Spara som, Välj den plats däroch välj sedan Spara.Enter a name for the CSR file in Save As, select the location in Where, and then select Save.

    Välj ett fil namn för certifikatet

    Den här åtgärden sparar CSR-filen på den valda platsen.This action saves the CSR file in the selected location. Standard platsen är Skriv bord.The default location is Desktop. Kom ihåg den plats du valde för filen.Remember the location chosen for the file.

Registrera sedan din app med Apple, aktivera push-meddelanden och ladda upp den exporterade CSR-filen för att skapa ett push-certifikat.Next, register your app with Apple, enable push notifications, and upload the exported CSR to create a push certificate.

Registrera din app för push-meddelandenRegister your app for push notifications

Om du vill skicka push-meddelanden till en iOS-App registrerar du ditt program med Apple och registrerar dig även för push-meddelanden.To send push notifications to an iOS app, register your application with Apple, and also register for push notifications.

  1. Om du inte redan har registrerat din app kan du gå till iOS-etablerings portalen i Apple Developer Center.If you haven't already registered your app, browse to the iOS Provisioning Portal at the Apple Developer Center. Logga in på portalen med ditt Apple-ID och välj identifierare.Sign in to the portal with your Apple ID, and select Identifiers. Välj + sedan att registrera en ny app.Then select + to register a new app.

    Sidan för App-ID:n i etableringsportalen för iOS

  2. På sidan Registrera en ny identifierare väljer du alternativ knappen app-ID .On the Register a New Identifier screen, select the App IDs radio button. Välj sedan Fortsätt.Then select Continue.

    iOS-etablerings Portal Registrera ny ID-sida

  3. Uppdatera följande tre värden för din nya app och välj sedan Fortsätt:Update the following three values for your new app, and then select Continue:

    • Beskrivning: Ange ett beskrivande namn för din app.Description: Type a descriptive name for your app.

    • Paket-ID: Ange ett paket-ID för formatet organisations-ID. produkt namn som nämns i program distributions guiden.Bundle ID: Enter a Bundle ID of the form Organization Identifier.Product Name as mentioned in the App Distribution Guide. Organisations-ID och produkt namn måste matcha organisations-ID och produkt namn som du använder när du skapar ditt Xcode-projekt.The Organization Identifier and Product Name values must match the organization identifier and product name you use when you create your Xcode project. I följande skärm bild används NotificationHubs -värdet som ett organisations-ID och värdet GetStarted används som produkt namn.In the following screenshot, the NotificationHubs value is used as an organization identifier and the GetStarted value is used as the product name. Se till att värdet för paket identifieraren matchar värdet i Xcode-projektet, så att Xcode använder rätt publicerings profil.Make sure the Bundle Identifier value matches the value in your Xcode project, so that Xcode uses the correct publishing profile.

      iOS-etablerings Portal registrera app-ID-sida

    • Push-meddelanden: Markera alternativet push-meddelanden i avsnittet funktioner .Push Notifications: Check the Push Notifications option in the Capabilities section.

      Formulär för att registrera ett nytt App-ID

      Den här åtgärden genererar ditt app-ID och begär att du bekräftar informationen.This action generates your App ID and requests that you confirm the information. Välj Fortsättoch välj Registrera för att bekräfta det nya app-ID: t.Select Continue, then select Register to confirm the new App ID.

      Bekräfta nytt app-ID

      När du har valt Registreravisas det nya app-ID: t som ett rad objekt på sidan certifikat, identifierare & profiler .After you select Register, you see the new App ID as a line item in the Certificates, Identifiers & Profiles page.

  4. På sidan certifikat, identifierare & profiler , under identifierare, letar du upp det ID-rads objekt för app-ID som du nyss skapade och väljer dess rad för att visa skärmen Redigera appens ID-konfiguration .In the Certificates, Identifiers & Profiles page, under Identifiers, locate the App ID line item that you just created, and select its row to display the Edit your App ID Configuration screen.

Skapa ett certifikat för Notification HubsCreating a Certificate for Notification Hubs

Ett certifikat krävs för att meddelande hubben ska fungera med APN.A certificate is required to enable the notification hub to work with APNS. Detta kan göras på ett av två sätt:This can be done in one of two ways:

  1. Skapa en . p12 som kan överföras direkt till Notification Hub.Create a .p12 that can be uploaded directly to Notification Hub.
  2. Skapa en . P8 som kan användas för tokenbaserad autentisering (den nyare metoden).Create a .p8 that can be used for token-based authentication (the newer approach).

Den nyare metoden har ett antal fördelar (jämfört med att använda certifikat) enligt beskrivningen i tokenbaserad (http/2) autentisering för APN.The newer approach has a number of benefits (compared to using certificates) as documented in Token-based (HTTP/2) authentication for APNS. Men du har fått anvisningar för båda metoderna.However, steps have been provided for both approaches.

ALTERNATIV 1: skapa ett. p12-Push-certifikat som kan överföras direkt till Notification HubOPTION 1: Creating a .p12 push certificate that can be uploaded directly to Notification Hub

  1. Rulla ned till alternativet kontrollerade push-meddelanden och välj sedan Konfigurera för att skapa certifikatet.Scroll down to the checked Push Notifications option, and then select Configure to create the certificate.

    Redigera sidan för App-ID:n

  2. Fönstret SSL-certifikat för Apple Push Notification Service visas.The Apple Push Notification service SSL Certificates window appears. Välj knappen Skapa certifikat under avsnittet utvecklings-SSL-certifikat .Select the Create Certificate button under the Development SSL Certificate section.

    Skapa certifikat för knappen för App-ID

    Skärmen skapa ett nytt certifikat visas.The Create a new Certificate screen is displayed.

    Anteckning

    Den här guiden använder ett utvecklarcertifikat.This tutorial uses a development certificate. Du använder samma process när du registrerar ett driftscertifikat.The same process is used when registering a production certificate. Se bara till att du använder samma certifikattyp när du skickar meddelanden.Just make sure that you use the same certificate type when sending notifications.

  3. Välj Välj fil, bläddra till den plats där du sparade CSR-filen från den första aktiviteten och dubbelklicka sedan på certifikat namnet för att läsa in det.Select Choose File, browse to the location where you saved the CSR file from the first task, and then double-click the certificate name to load it. Välj sedan Fortsätt.Then select Continue.

  4. När portalen har skapat certifikatet väljer du knappen Ladda ned .After the portal creates the certificate, select the Download button. Spara certifikatet och kom ihåg platsen där det sparades.Save the certificate, and remember the location to which it's saved.

    Nedladdningssidan för genererade certifikat

    Certifikatet laddas ned och sparas på din dator i mappen hämtade filer .The certificate is downloaded and saved to your computer in your Downloads folder.

    Hitta certifikatfilen i mappen Hämtade filer

    Anteckning

    Som standard heter det hämtade utvecklings certifikatet aps_development. cer.By default, the downloaded development certificate is named aps_development.cer.

  5. Dubbelklicka på det hämtade push-certifikatet aps_development.cer.Double-click the downloaded push certificate aps_development.cer. Den här åtgärden installerar det nya certifikatet i nyckelringen enligt följande bild:This action installs the new certificate in the Keychain, as shown in the following image:

    Nya certifikat visas i listan med certifikat för nyckelhanteraren

    Anteckning

    Även om namnet i ditt certifikat kan vara olika, kommer namnet att föregås av Apple Development iOS push-tjänster.Although the name in your certificate might be different, the name will be prefixed with Apple Development iOS Push Services.

  6. I nyckelhanteraren högerklickar du på det nya push-certifikatet som du skapade i Certifikat-kategorin.In Keychain Access, right-click the new push certificate that you created in the Certificates category. Välj Exportera, namnge filen, Välj . p12 -formatet och välj sedan Spara.Select Export, name the file, select the .p12 format, and then select Save.

    Exportera certifikatet i p12-format

    Du kan välja att skydda certifikatet med ett lösen ord, men det är valfritt.You can choose to protect the certificate with a password, but this is optional. Klicka på OK om du vill kringgå lösen ords skapande.Click OK if you want to bypass password creation. Anteckna filnamnet och platsen dit .p12-certifikatet exporterats.Make a note of the file name and location of the exported .p12 certificate. De används för att aktivera autentisering med APN.They are used to enable authentication with APNs.

    Anteckning

    Namnet på och platsen för. p12-filen kan skilja sig från vad som visas i den här självstudien.Your .p12 file name and location might be different than what is pictured in this tutorial.

ALTERNATIV 2: skapa ett. P8-certifikat som kan användas för tokenbaserad autentiseringOPTION 2: Creating a .p8 certificate that can be used for token-based authentication

  1. Anteckna följande information:Make note of the following details:

    • App-ID-prefix (detta är ett Team-ID)App ID Prefix (this is a Team ID)
    • Samlings-IDBundle ID
  2. Tillbaka i certifikat, identifierare & profiler, klickar du på nycklar.Back in Certificates, Identifiers & Profiles, click Keys.

    Anteckning

    Om du redan har en nyckel som har kon figurer ATS för APNkan du använda det. P8-certifikat som du laddade ned direkt efter att det har skapats.If you already have a key configured for APNS, you can re-use the .p8 certificate that you downloaded right after it was created. I så fall kan du ignorera steg 3 till 5.If so, you can ignore steps 3 through 5.

  3. Klicka på + knappen (eller knappen skapa en nyckel ) för att skapa en ny nyckel.Click the + button (or the Create a key button) to create a new key.

  4. Ange ett lämpligt nyckel namn värde, kontrol lera sedan alternativet för Apple Push Notifications-tjänsten (APNs) och klicka sedan på Fortsätt, följt av Registrera på nästa skärm.Provide a suitable Key Name value, then check the Apple Push Notifications service (APNs) option, and then click Continue, followed by Register on the next screen.

  5. Klicka på Hämta och flytta . P8 -filen (med prefixet AuthKey_) till en säker lokal katalog och klicka sedan på Slutför.Click Download and then move the .p8 file (prefixed with AuthKey_) to a secure local directory, then click Done.

    Anteckning

    Se till att behålla din. P8-fil på en säker plats (och spara en säkerhets kopia).Be sure to keep your .p8 file in a secure place (and save a backup). När du har laddat ned nyckeln kan du inte ladda ned den igen eftersom Server kopian tas bort.After downloading your key, it cannot be re-downloaded as the server copy is removed.

  6. Klicka på nyckeln som du nyss skapade (eller en befintlig nyckel om du har valt att använda den i stället) på nycklar.On Keys, click on the key that you just created (or an existing key if you have chosen to use that instead).

  7. Anteckna värdet för nyckel-ID .Make note of the Key ID value.

  8. Öppna ditt. P8-certifikat i ett lämpligt program, till exempel Visual Studio Code , och anteckna värdet för nyckeln.Open your .p8 certificate in a suitable application of your choice such as Visual Studio Code then make note of the key value. Detta är värdet mellan -----att starta den privata nyckeln----- och -----avsluta den privata nyckeln----- .This is the value between -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY----- .

    -----BEGIN PRIVATE KEY-----
    <key_value>
    -----END PRIVATE KEY-----
    

    Anteckning

    Detta är det token-värde som kommer att användas senare för att konfigurera Notification Hub.This is the token value that will be used later to configure Notification Hub.

I slutet av de här stegen bör du ha följande information för att kunna använda senare i Konfigurera Notification Hub med APN-information:At the end of these steps you should have the following information for use later in Configure your notification hub with APNs information:

  • Team-ID (se steg 1)Team ID (see step 1)
  • Paket-ID (se steg 1)Bundle ID (see step 1)
  • Nyckel-ID (se steg 7)Key ID (see step 7)
  • Token-värde , dvs. P8-nyckel värde (se steg 8)Token value i.e. the .p8 key value (see step 8)

Skapa en etableringsprofil för appenCreate a provisioning profile for the app

  1. Gå tillbaka till iOS-etablerings portalen, Välj certifikat, identifierare & profiler, Välj profiler på den vänstra menyn och välj + sedan för att skapa en ny profil.Return to the iOS Provisioning Portal, select Certificates, Identifiers & Profiles, select Profiles from the left menu, and then select + to create a new profile. Skärmen Registrera en ny etablerings profil visas.The Register a New Provisioning Profile screen appears.

  2. Välj utveckling av iOS-appar under utveckling som etablerings profil typ och välj sedan Fortsätt.Select iOS App Development under Development as the provisioning profile type, and then select Continue.

    Lista med etableringsprofiler

  3. Välj sedan det app-ID som du skapade i list rutan app-ID och välj Fortsätt.Next, select the app ID you created from the App ID drop-down list, and select Continue.

    Välj App-ID:et

  4. I fönstret Välj certifikat väljer du det utvecklings certifikat som du använder för kod signering och väljer Fortsätt.In the Select certificates window, select the development certificate that you use for code signing, and select Continue. Det här certifikatet är inte det Push-certifikat som du har skapat.This certificate isn't the push certificate you created. Om det inte finns någon sådan, måste du skapa den.If one does not exist, you must create it. Om det finns ett certifikat går du vidare till nästa steg.If a certificate does exist, skip to the next step. Så här skapar du ett utvecklings certifikat om det inte finns något:To create a development certificate if one does not exist:

    1. Om du inte ser några certifikat tillgängligaväljer du Skapa certifikat.If you see No Certificates are available, select Create Certificate.
    2. Välj Apple-utvecklingi avsnittet program vara .In the Software section, select Apple Development. Välj sedan Fortsätt.Then select Continue.
    3. På skärmen skapa ett nytt certifikat väljer du Välj fil.In the Create a New Certificate screen, select Choose File.
    4. Bläddra till certifikatet signerings förfrågan som du skapade tidigare, markera det och välj sedan Öppna.Browse to the Certificate Signing Request certificate you created earlier, select it, and then select Open.
    5. Välj Fortsätt.Select Continue.
    6. Hämta utvecklings certifikatet och kom ihåg platsen där det sparades.Download the development certificate, and remember the location to which it's saved.
  5. Gå tillbaka till sidan certifikat, identifierare & profiler , Välj profiler på den vänstra menyn och välj + sedan för att skapa en ny profil.Return to the Certificates, Identifiers & Profiles page, select Profiles from the left menu, and then select + to create a new profile. Skärmen Registrera en ny etablerings profil visas.The Register a New Provisioning Profile screen appears.

  6. I fönstret Välj certifikat väljer du det utvecklings certifikat som du nyss skapade.In the Select certificates window, select the development certificate that you just created. Välj sedan Fortsätt.Then select Continue.

  7. Välj sedan de enheter som ska användas för testning och välj Fortsätt.Next, select the devices to use for testing, and select Continue.

  8. Slutligen väljer du ett namn för profilen i etablerings profil namnoch väljer generera.Finally, choose a name for the profile in Provisioning Profile Name, and select Generate.

    Välj namn på etableringsprofilen

  9. När den nya etablerings profilen har skapats väljer du Hämta.When the new provisioning profile is created, select Download. Kom ihåg platsen där den sparades.Remember the location to which it's saved.

  10. Bläddra till platsen för etablerings profilen och dubbelklicka sedan på den för att installera den på Xcode-utvecklings datorn.Browse to the location of the provisioning profile, and then double-click it to install it on your Xcode development machine.

Skapa en meddelandehubbCreate a notification hub

I det här avsnittet skapar du en Notification Hub och konfigurerar autentisering med APNs genom att använda antingen. p12 Push-certifikat eller tokenbaserad autentisering.In this section, you create a notification hub and configure authentication with APNs by using either the .p12 push certificate or token-based authentication. Om du vill använda ett meddelande nav som du redan har skapat kan du gå vidare till steg 5.If you want to use a notification hub that you've already created, you can skip to step 5.

  1. Logga in på Azure-portalen.Sign in to the Azure portal.

  2. Välj alla tjänster på den vänstra menyn och välj sedan Notification Hubs i avsnittet mobil .Select All services on the left menu, and then select Notification Hubs in the Mobile section. Välj stjärn ikonen bredvid tjänst namnet för att lägga till tjänsten i Favoriter -avsnittet på den vänstra menyn.Select the star icon next to the service name to add the service to the FAVORITES section on the left menu. När du har lagt till Notification Hubs i Favoriterväljer du den på den vänstra menyn.After you add Notification Hubs to FAVORITES, select it on the left menu.

    Azure-portalen – välj Notification Hubs

  3. På sidan Notification Hubs väljer du Lägg till i verktygsfältet.On the Notification Hubs page, select Add on the toolbar.

    Notification Hubs – Lägga till verktygsfältsknapp

  4. På sidan Notification Hub gör du följande:On the Notification Hub page, do the following steps:

    1. Ange ett namn i Notification Hub.Enter a name in Notification Hub.

    2. Ange ett namn i skapa ett nytt namn område.Enter a name in Create a new namespace. En namnrymd innehåller en eller flera hubbar.A namespace contains one or more hubs.

    3. Välj ett värde i list rutan plats .Select a value from the Location drop-down list box. Det här värdet anger den plats där du vill skapa hubben.This value specifies the location in which you want to create the hub.

    4. Välj en befintlig resurs grupp i resurs gruppeneller skapa ett namn för en ny resurs grupp.Select an existing resource group in Resource Group, or create a name for a new resource group.

    5. Välj Skapa.Select Create.

      Azure Portal – ange egenskaper för meddelandehubben

  5. Välj meddelanden (klock ikonen) och välj sedan gå till resurs.Select Notifications (the bell icon), and then select Go to resource. Du kan också uppdatera listan på sidan Notification Hubs och välja hubben.You can also refresh the list on the Notification Hubs page and select your hub.

    Azure Portal – Meddelanden -> Gå till resurser

  6. Välj Åtkomstprinciper i listan.Select Access Policies from the list. Observera att de två anslutnings strängarna är tillgängliga för dig.Note that the two connection strings are available to you. Du behöver dem senare för att hantera push-meddelanden.You'll need them later to handle push notifications.

    Viktigt

    Använd inte DefaultFullSharedAccessSignature -principen i ditt program.Do not use the DefaultFullSharedAccessSignature policy in your application. Detta är endast avsett att användas i Server delen.This is meant to be used in your back end only.

    Azure Portal – anslutningssträngar för meddelandehubb

Konfigurera Notification Hub med APN-informationConfigure your notification hub with APNs information

Under Notification Servicesväljer du Apple (APNs) och följer sedan lämpliga steg baserat på den metod som du valde tidigare i avsnittet skapa ett certifikat för Notification Hubs .Under Notification Services, select Apple (APNS) then follow the appropriate steps based on the approach you chose previously in the Creating a Certificate for Notification Hubs section.

Anteckning

Använd endast produktion för program läge om du vill skicka push-meddelanden till användare som har köpt din app från Store.Use the Production for Application Mode only if you want to send push notifications to users who purchased your app from the store.

ALTERNATIV 1: använda ett. p12-Push-certifikatOPTION 1: Using a .p12 push certificate

  1. Välj Certifikat.Select Certificate.

  2. Välj filikonen.Select the file icon.

  3. Välj den. P12-fil som du exporterade tidigare och välj sedan Öppna.Select the .p12 file that you exported earlier, and then select Open.

  4. Ange rätt lösen ord om det behövs.If required, specify the correct password.

  5. Välj Sandbox-läge.Select Sandbox mode.

    Konfigurera APNs-certifikat i Azure-portalen

  6. Välj Spara.Select Save.

ALTERNATIV 2: använda tokenbaserad autentiseringOPTION 2: Using token-based authentication

  1. Välj token.Select Token.

  2. Ange följande värden som du har köpt tidigare:Enter the following values that you acquired earlier:

    • Nyckel-IDKey ID
    • Samlings-IDBundle ID
    • Team-IDTeam ID
    • TokenToken
  3. Välj sandboxChoose Sandbox

  4. Välj Spara.Select Save.

Du har nu konfigurerat din Notification Hub med APN.You've now configured your notification hub with APNs. Du har också anslutnings strängarna för att registrera din app och skicka push-meddelanden.You also have the connection strings to register your app and send push notifications.

Anslut iOS-appen till Notification HubsConnect your iOS app to Notification Hubs

  1. Skapa ett nytt iOS-projekt i Xcode och välj mallen Program enkel vy.In Xcode, create a new iOS project and select the Single View Application template.

    Xcode – Program enkel vy

  2. När du anger alternativ för ditt nya projekt, ska du använda samma produktnamn och organisations-ID som du använde när du gjorde inställningarna för ID:t för programpaket på Apple Developer-portalen.When setting the options for your new project, make sure to use the same Product Name and Organization Identifier that you used when you set the bundle identifier in the Apple Developer portal.

  3. Under projekt navigering väljer du ditt projekt namn under måloch väljer sedan fliken signerings & funktioner . se till att du väljer rätt team för ditt Apple Developer-konto.Under Project Navigator, select your project name under Targets, then select the Signing & Capabilities tab. Make sure you select the appropriate Team for your Apple Developer account. XCode bör automatiskt hämta den etableringsprofil du har skapat tidigare baserat på paket-ID.XCode should automatically pull down the Provisioning Profile you created previously based on your bundle identifier.

    Om du inte ser den nya etableringsprofil som du skapade i Xcode, kan du försöka uppdatera profilerna för din signeringsidentitet.If you don't see the new provisioning profile that you created in Xcode, try refreshing the profiles for your signing identity. Klicka på Xcode på menyraden, sedan på Inställningar och på fliken Konto. Därefter klickar du på knappen Visa detaljer och sedan på din signeringsidentitet. Slutligen klickar du på uppdateringsknappen i det nedre högra hörnet.Click Xcode on the menu bar, click Preferences, click the Account tab, click the View Details button, click your signing identity, and then click the refresh button in the bottom-right corner.

    Xcode – etableringsprofil

  4. På fliken signerings & funktioner väljer du + funktion.In the Signing & Capabilities tab, select + Capability. Dubbelklicka på push-meddelanden för att aktivera det.Double-click Push Notifications to enable it.

    Xcode – push-funktioner

  5. Lägg till Azure Notification Hubs SDK-modulerna.Add the Azure Notification Hubs SDK modules.

    Du kan integrera Azure Notification Hubs SDK i din app med hjälp av Cocoapods eller genom att manuellt lägga till binärfilerna i projektet.You can integrate the Azure Notification Hubs SDK in your app by using Cocoapods or by manually adding the binaries to your project.

    • Integrering via CocoapodsIntegration via Cocoapods

      Lägg till följande beroenden i podfile för att inkludera Azure Notification Hubs SDK i din app.Add the following dependencies to your podfile to include Azure Notification Hubs SDK into your app.

      pod 'AzureNotificationHubs-iOS'
      

      Kör pod install för att installera den nyligen definierade Pod och öppna .xcworkspacedin.Run pod install to install your newly defined pod and open your .xcworkspace.

      Anteckning

      Om du ser ett fel som [!] Det gick inte att hitta någon specifikation för AzureNotificationHubs-iOS medan den pod installkörs pod repo update , kör för att hämta de senaste poddar från Cocoapods-lagringsplatsen pod installoch kör sedan.If you see an error such as [!] Unable to find a specification for AzureNotificationHubs-iOS while running pod install, please run pod repo update to get the latest pods from the Cocoapods repository, and then run pod install.

    • Integrering via CarthageIntegration via Carthage

      Lägg till följande beroenden i Cartfile för att inkludera Azure Notification Hubs SDK i din app.Add the following dependencies to your Cartfile to include Azure Notification Hubs SDK into your app.

      github "Azure/azure-notificationhubs-ios"
      

      Nästa, uppdatera och bygg beroenden:Next, update, and build dependencies:

      $ carthage update
      

      Mer information om hur du använder Carthage finns i Carthage GitHub-lagringsplatsen.For more information about using Carthage, see the Carthage GitHub repository.

    • Integrering genom att kopiera binärfilerna till projektetIntegration by copying the binaries into your project

      1. Hämta Azure Notification HUBS SDK Framework som tillhandahålls som en zip-fil och packa upp den.Download the Azure Notification Hubs SDK framework provided as a zip file and unzip it.

      2. Högerklicka på ditt projekt i Xcode och klicka sedan på alternativet Lägg till filer i för att lägga till mappen WindowsAzureMessaging.framework till ditt Xcode-projekt.In Xcode, right-click your project and click the Add Files to option to add the WindowsAzureMessaging.framework folder to your Xcode project. Välj Alternativ och se till att Kopiera objekt vid behov är markerat och klicka sedan på Lägg till.Select Options and make sure Copy items if needed is selected, and then click Add.

        Packa upp Azure SDK

  6. Lägg till en ny rubrik fil i projektet med namnet konstanter. h.Add a new header file to your project named Constants.h. Det gör du genom att högerklicka på projekt namnet och välja ny fil.... Välj sedan rubrik fil.To do so, right-click the project name and select New File.... Then select Header File. Den här filen innehåller konstanterna för din meddelandehubb.This file holds the constants for your notification hub. Välj Nästa.Then select Next. Namnge filens konstanter. h.Name the file Constants.h.

  7. Lägg till följande kod i konstanter. h-filen:Add the following code to the Constants.h file:

    #ifndef Constants_h
    #define Constants_h
    
    extern NSString* const NHInfoConnectionString;
    extern NSString* const NHInfoHubName;
    extern NSString* const NHUserDefaultTags;
    
    #endif /* Constants_h */
    
  8. Lägg till implementerings filen för konstanter. h.Add the implementation file for Constants.h. Det gör du genom att högerklicka på projekt namnet och välja ny fil.... Välj mål-C-filoch välj sedan Nästa.To do so, right-click the project name and select New File.... Select Objective-C File, and then select Next. Namnge filens konstanter. m.Name the file Constants.m.

    Lägg till. m-fil

  9. Öppna filen konstanter. m och ersätt innehållet med följande kod.Open the Constants.m file and replace its contents with the following code. Ersätt plats hållarna för sträng NotificationHubConnectionString litteraler och NotificationHubConnectionString med hubb-och DefaultListenSharedAccessSignaturesom du tidigare har hämtat från portalen:Replace the string literal placeholders NotificationHubConnectionString and NotificationHubConnectionString with the hub name and the DefaultListenSharedAccessSignature, respectively, as you previously obtained from the portal:

    #import <Foundation/Foundation.h>
    #import "Constants.h"
    
    NSString* const NHInfoConnectionString = @"NotificationHubConnectionString";
    NSString* const NHInfoHubName = @"NotificationHubName";
    NSString* const NHUserDefaultTags = @"notification_tags";
    
  10. Öppna projektets AppDelegate. h -fil och ersätt innehållet med följande kod:Open your project's AppDelegate.h file and replace its contents with the following code:

    #import <UIKit/UIKit.h>
    #import <WindowsAzureMessaging/WindowsAzureMessaging.h>
    #import <UserNotifications/UserNotifications.h> 
    
    @interface AppDelegate : UIResponder <UIApplicationDelegate,UNUserNotificationCenterDelegate>
    
    @property (strong, nonatomic) UIWindow *window;
    
    - (void)handleRegister;
    - (void)handleUnregister;
    
    @end
    
    
  11. Lägg till följande import -uttryck i projektets AppDelegate. m -fil:In the project's AppDelegate.m file, add the following import statements:

    #import "Constants.h"
    #import "NotificationDetailViewController.h"
    
  12. I filen AppDelegate. m lägger du också till följande kodrad i- didFinishLaunchingWithOptions metoden baserat på din version av iOS.Also in your AppDelegate.m file, add the following line of code in the didFinishLaunchingWithOptions method based on your version of iOS. Den här koden registrerar din enhetshantering med APNS:This code registers your device handle with APNs:

    [[UNUserNotificationCenter currentNotificationCenter] setDelegate:self];
    
  13. Ersätt all kod efter didFinishLaunchingWithOptions följande kod i samma AppDelegate. m -fil:In the same AppDelegate.m file, replace all the code after didFinishLaunchingWithOptions with the following code:

    // Tells the app that a remote notification arrived that indicates there is data to be fetched.
    
    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
        NSLog(@"Received remote (silent) notification");
        [self logNotificationDetails:userInfo];
    
        //
        // Let the system know the silent notification has been processed.
        //
        completionHandler(UIBackgroundFetchResultNoData);
    }
    
    // Tells the delegate that the app successfully registered with Apple Push Notification service (APNs).
    
    - (void) application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
        NSMutableSet *tags = [[NSMutableSet alloc] init];
    
        // Load and parse stored tags
        NSString *unparsedTags = [[NSUserDefaults standardUserDefaults] valueForKey:NHUserDefaultTags];
        if (unparsedTags.length > 0) {
            NSArray *tagsArray = [unparsedTags componentsSeparatedByString: @","];
            [tags addObjectsFromArray:tagsArray];
        }
    
        // Register the device with the Notification Hub.
        // If the device has not already been registered, this will create the registration.
        // If the device has already been registered, this will update the existing registration.
        //
        SBNotificationHub* hub = [self getNotificationHub];
        [hub registerNativeWithDeviceToken:deviceToken tags:tags completion:^(NSError* error) {
            if (error != nil) {
                NSLog(@"Error registering for notifications: %@", error);
            } else {
                [self showAlert:@"Registered" withTitle:@"Registration Status"];
            }
        }];
    }
    
    // UNUserNotificationCenterDelegate methods
    //
    // Asks the delegate how to handle a notification that arrived while the app was running in the  foreground.
    
    - (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler {
        NSLog(@"Received notification while the application is in the foreground");
    
        // The system calls this delegate method when the app is in the foreground. This allows the app to handle the notification
        // itself (and potentially modify the default system behavior).
    
        // Handle the notification by displaying custom UI.
        //
        [self showNotification:notification.request.content.userInfo];
    
        // Use 'options' to specify which default behaviors to enable.
        // - UNAuthorizationOptionBadge: Apply the notification's badge value to the app’s icon.
        // - UNAuthorizationOptionSound: Play the sound associated with the notification.
        // - UNAuthorizationOptionAlert: Display the alert using the content provided by the notification.
        //
        // In this case, do not pass UNAuthorizationOptionAlert because the notification was handled by the app.
        //
        completionHandler(UNAuthorizationOptionBadge | UNAuthorizationOptionSound);
    }
    
    // Asks the delegate to process the user's response to a delivered notification.
    //
    
    - (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)(void))completionHandler {
        NSLog(@"Received notification while the application is in the background");
    
        // The system calls this delegate method when the user taps or responds to the system notification.
    
        // Handle the notification response by displaying custom UI
        //
        [self showNotification:response.notification.request.content.userInfo];
    
        // Let the system know the response has been processed.
        //
        completionHandler();
    }
    
    // App logic and helpers
    
    - (SBNotificationHub *)getNotificationHub {
        NSString *hubName = [[NSBundle mainBundle] objectForInfoDictionaryKey:NHInfoHubName];
        NSString *connectionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:NHInfoConnectionString];
    
        return [[SBNotificationHub alloc] initWithConnectionString:connectionString notificationHubPath:hubName];
    }
    
    - (void)handleRegister {
        UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
    
        UNAuthorizationOptions options =  UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
        [center requestAuthorizationWithOptions:(options) completionHandler:^(BOOL granted, NSError * _Nullable error) {
            if (error != nil) {
                NSLog(@"Error requesting for authorization: %@", error);
            }
        }];
        [[UIApplication sharedApplication] registerForRemoteNotifications];
    }
    
    - (void)handleUnregister {
        //
        // Unregister the device with the Notification Hub.
        //
        SBNotificationHub *hub = [self getNotificationHub];
        [hub unregisterNativeWithCompletion:^(NSError* error) {
            if (error != nil) {
                NSLog(@"Error unregistering for push: %@", error);
            } else {
                [self showAlert:@"Unregistered" withTitle:@"Registration Status"];
            }
        }];
    }
    
    - (void)logNotificationDetails:(NSDictionary *)userInfo {
        if (userInfo != nil) {
            UIApplicationState state = [UIApplication sharedApplication].applicationState;
            BOOL background = state != UIApplicationStateActive;
            NSLog(@"Received %@notification: \n%@", background ? @"(background) " : @"", userInfo);
        }
    }
    
    - (void)showAlert:(NSString *)message withTitle:(NSString *)title {
        if (title == nil) {
            title = @"Alert";
        }
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
        [alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
        [[[[UIApplication sharedApplication] keyWindow] rootViewController] presentViewController:alert animated:YES completion:nil];
    }
    
    - (void)showNotification:(NSDictionary *)userInfo {
        [self logNotificationDetails:userInfo];
    
        NotificationDetailViewController *notificationDetail = [[NotificationDetailViewController alloc] initWithUserInfo:userInfo];
        [[[[UIApplication sharedApplication] keyWindow] rootViewController] presentViewController:notificationDetail animated:YES completion:nil];
    }
    
    @end
    

    Den här koden ansluter till Notification Hub med anslutnings informationen som du angav i konstanter. h.This code connects to the notification hub using the connection information you specified in Constants.h. Den lämnar sedan över enhetstoken till meddelandehubben för att den ska kunna skicka meddelanden.It then gives the device token to the notification hub so that the notification hub can send notifications.

NotificationDetailViewControllerNotificationDetailViewController

  1. Precis som i föregående instruktioner lägger du till en annan rubrik fil med namnet NotificationDetailViewController. h.Similar the previous instructions, add another header file named NotificationDetailViewController.h. Ersätt innehållet i den nya rubrik filen med följande kod:Replace the contents of the new header file with the following code:

    #import <UIKit/UIKit.h>
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface NotificationDetailViewController : UIViewController
    
    @property (strong, nonatomic) IBOutlet UILabel *titleLabel;
    @property (strong, nonatomic) IBOutlet UILabel *bodyLabel;
    @property (strong, nonatomic) IBOutlet UIButton *dismissButton;
    
    @property (strong, nonatomic) NSDictionary *userInfo;
    
    - (id)initWithUserInfo:(NSDictionary *)userInfo;
    
    @end
    
    NS_ASSUME_NONNULL_END
    
  2. Lägg till implementerings filen NotificationDetailViewController. m.Add the implementation file NotificationDetailViewController.m. Ersätt innehållet i filen med följande kod, som implementerar UIViewController metoderna:Replace the contents of the file with the following code, which implements the UIViewController methods:

    #import "NotificationDetailViewController.h"
    
    @interface NotificationDetailViewController ()
    
    @end
    
    @implementation NotificationDetailViewController
    
    - (id)initWithUserInfo:(NSDictionary *)userInfo {
        self = [super initWithNibName:@"NotificationDetail" bundle:nil];
        if (self) {
            _userInfo = userInfo;
        }
        return self;
    }
    
    - (void)viewDidLayoutSubviews {
        [self.titleLabel sizeToFit];
        [self.bodyLabel sizeToFit];
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        NSString *title = nil;
        NSString *body = nil;
    
        NSDictionary *aps = [_userInfo valueForKey:@"aps"];
        NSObject *alertObject = [aps valueForKey:@"alert"];
        if (alertObject != nil) {
            if ([alertObject isKindOfClass:[NSDictionary class]]) {
                NSDictionary *alertDict = (NSDictionary *)alertObject;
                title = [alertDict valueForKey:@"title"];
                body = [alertObject valueForKey:@"body"];
            } else if ([alertObject isKindOfClass:[NSString class]]) {
                body = (NSString *)alertObject;
            } else {
                NSLog(@"Unable to parse notification content. Unexpected format: %@", alertObject);
            }
        }
    
        if (title == nil) {
            title = @"<unset>";
        }
    
        if (body == nil) {
            body = @"<unset>";
        }
    
        self.titleLabel.text = title;
        self.bodyLabel.text = body;
    }
    
    - (IBAction)handleDismiss:(id)sender {
        [self dismissViewControllerAnimated:YES completion:nil];
    }
    
    @end
    

ViewControllerViewController

  1. Lägg till följande import -uttryck i projektets ViewController. h -fil:In the project's ViewController.h file, add the following import statements:

    #import <WindowsAzureMessaging/WindowsAzureMessaging.h>
    #import <UserNotifications/UserNotifications.h>
    
  2. Lägg också till följande egenskaps deklarationer efter @interface deklarationen i ViewController. h:Also in ViewController.h, add the following property declarations after the @interface declaration:

    @property (strong, nonatomic) IBOutlet UITextField *tagsTextField;
    @property (strong, nonatomic) IBOutlet UIButton *registerButton;
    @property (strong, nonatomic) IBOutlet UIButton *unregisterButton;
    
  3. I projektets implementerings fil för ViewController. m ersätter du innehållet i filen med följande kod:In the project's ViewController.m implementation file, replace the contents of the file with the following code:

    #import "ViewController.h"
    #import "Constants.h"
    #import "AppDelegate.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    // UIViewController methods
    
    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
        // Simple method to dismiss keyboard when user taps outside of the UITextField.
        [self.view endEditing:YES];
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        // Load raw tags text from storage and initialize the text field
        self.tagsTextField.text = [[NSUserDefaults standardUserDefaults] valueForKey:NHUserDefaultTags];
    }
    
    - (IBAction)handleRegister:(id)sender {
        // Save raw tags text in storage
        [[NSUserDefaults standardUserDefaults] setValue:self.tagsTextField.text forKey:NHUserDefaultTags];
    
    // Delegate processing the register action to the app delegate.
    [[[UIApplication sharedApplication] delegate] performSelector:@selector(handleRegister)];
    }
    
    - (IBAction)handleUnregister:(id)sender {
        [[[UIApplication sharedApplication] delegate] performSelector:@selector(handleUnregister)];
    }
    
    @end
    
  4. Skapa och kör appen på din enhet för att kontrollera att det inte finns några fel.To verify there are no failures, build and run the app on your device.

Skicka test-push-meddelandenSend test push notifications

Du kan testa att ta emot meddelanden i appen med alternativet Skicka test i Azure Portal.You can test receiving notifications in your app with the Test Send option in the Azure portal. Den skickar ett test-push-meddelande till enheten.It sends a test push notification to your device.

Azure Portal – Skicka test

Push-meddelanden skickas vanligtvis via en serverdelstjänst, till exempel Mobile Apps eller ASP.NET, med hjälp av ett kompatibelt bibliotek.Push notifications are normally sent in a back-end service like Mobile Apps or ASP.NET using a compatible library. Om ett bibliotek inte är tillgängligt för Server delen kan du också använda REST API direkt för att skicka meddelanden.If a library isn't available for your back end, you can also use the REST API directly to send notification messages.

Här är en lista över några andra själv studie kurser som du kanske vill granska för att skicka meddelanden:Here is a list of some other tutorials you might want to review for sending notifications:

Verifiera att din app tar emot push-meddelandenVerify that your app receives push notifications

Om du vill testa push-meddelanden på iOS måste du distribuera appen till en fysisk iOS-enhet.To test push notifications on iOS, you must deploy the app to a physical iOS device. Du kan inte skicka push-meddelanden för Apple genom att använda iOS-simulatorn.You cannot send Apple push notifications by using the iOS Simulator.

  1. Kör appen och verifiera att registreringen kan genomföras. Tryck sedan på OK.Run the app and verify that registration succeeds, and then press OK.

    Registreringstest för push-meddelanden i iOS-appar

  2. Sedan skickar du ett test-push-meddelande från Azure Portal, enligt beskrivningen ovan.Next you send a test push notification from the Azure portal, as described in the previous section.

  3. Push-meddelandena skickas till alla enheter som registrerats för att ta emot meddelanden från en viss Notification Hub.The push notification is sent to all devices that are registered to receive the notifications from the particular Notification Hub.

    Test av att ta emot push-meddelanden i iOS-appar

Nästa stegNext steps

I det här enkla exemplet skickade du push-meddelanden till alla dina registrerade iOS-enheter.In this simple example, you broadcasted push notifications to all your registered iOS devices. Information om hur du skickar meddelanden till specifika iOS-enheter finns i följande självstudiekurs:To learn how to push notifications to specific iOS devices, advance to the following tutorial: