Delen via


Zelfstudie: Pushmeldingen maken in uw iOS-app

In deze zelfstudie wordt u begeleid bij het maken van pushmeldingen in uw iOS-app met behulp van de Azure Communication Services Chat SDK.

Pushmeldingen waarschuwen gebruikers van binnenkomende berichten in een chat-thread wanneer de mobiele app niet op de voorgrond wordt uitgevoerd. Azure Communication Services ondersteunt twee versies van pushmeldingen:

  • Basisversie: Er wordt een badgenummer weergegeven op het pictogram van de app, het apparaat speelt een meldingsgeluid af en er wordt een pop-upwaarschuwingsbanner weergegeven.

    Schermopname van de basisversie van een pushmelding.

  • Geavanceerde versie: naast de functies die worden ondersteund in de basisversie, kunt u de titel en het voorbeeld van het bericht aanpassen in de waarschuwingsbanner.

    Schermopname van de geavanceerde versie van een pushmelding.

In deze zelfstudie hebt u:

  • Stel een APNs-certificaat (Apple Push Notification Service) in.
  • Xcode configureren voor pushmeldingen.
  • Implementeer een eenvoudige of geavanceerde versie van pushmeldingen.
  • Test de meldingen in uw app.
  • Automatische registratievernieuwing instellen voor pushmeldingen.

Code downloaden

Toegang tot de voorbeeldcode voor deze zelfstudie op GitHub.

Vereisten

  • Voltooi alle vereiste stappen in quickstart: Chat toevoegen aan uw app.

  • Maak een Azure Notification Hub binnen hetzelfde abonnement als uw Communication Services-resource en koppel de Notification Hub aan uw Communication Services-resource. Zie Inrichting van Notification Hub.

Een APNs-certificaat voor .p12 maken en instellen in de Notification Hub

Als u geen interne Microsoft-klant bent, voert u alle stappen in de volgende procedure uit.

Als u een interne Klant van Microsoft bent, dient u een ticket in en geeft u de bundel-id van uw app op om een .p12-certificaat op te halen. Ga vervolgens verder met de laatste stap in de volgende procedure.

  1. Meld u aan bij de Apple Developer-portal.

  2. Ga naar certificaten, id's en profielen-id's>van app-id's> en selecteer vervolgens de app-id die is gekoppeld aan uw app.

    Schermopname van selecties voor het kiezen van een app-id.

  3. Selecteer Op de pagina voor uw app-id mogelijkheden>pushmeldingen en selecteer vervolgens Opslaan.

    Schermopname met opties voor het bewerken van een app-id-configuratie.

  4. Selecteer Bevestigen in het dialoogvenster App-mogelijkheden wijzigen dat wordt weergegeven.

    Schermopname van de knop Bevestigen voor het wijzigen van app-mogelijkheden.

  5. Selecteer op de pagina voor uw app-id de optie Mogelijkheden>pushmeldingen>configureren en maak vervolgens de volgende keuze:

    • Als u pushmeldingen wilt testen tijdens het ontwikkelen van een iOS-app, selecteert u de knop Certificaat maken onder Ssl-certificaat voor ontwikkeling.
    • Als u pushmeldingen in productie wilt verzenden, selecteert u de knop Certificaat maken onder SSL-certificaat voor productie.

    Schermopname met opties voor het maken van een ontwikkelingscertificaat of een productiecertificaat.

  6. Het gebied Nieuw certificaat maken wordt weergegeven op de pagina Certificaten, Id's en profielen .

    Schermopname van de optie voor het uploaden van een certificaatondertekeningsaanvraag.

    In dit gebied uploadt u een aanvraag voor certificaatondertekening (CSR):

    1. Volg op een nieuw browsertabblad deze Help-pagina van Apple om een CSR te maken en het bestand op te slaan als app-name.cer. De instructies omvatten het gebruik van de Certificaatassistent om een certificaat aan te vragen en de certificaatgegevens in te vullen.

      Schermopname van selecties voor het aanvragen van een certificaat van een certificeringsinstantie.

      Schermopname van een voorbeeld van het invullen van certificaatgegevens.

    2. Sleep het .cer bestand naar het gebied Bestand kiezen. Selecteer Vervolgens Doorgaan in de rechterbovenhoek.

      Schermopname van het gebied voor het kiezen van een certificaatbestand.

  7. Selecteer Downloaden.

    Schermopname van de knop voor het downloaden van een certificaat.

  8. Sla het bestand lokaal op in de .p12-indeling.

    Schermopname van het gebied voor het opslaan van een certificaatbestand.

  9. Open het .cer-bestand dat u hebt gedownload. Selecteer uw certificaat in Sleutelhangertoegang, klik er met de rechtermuisknop op en exporteer het certificaat in .p12-indeling.

  10. Ga naar uw Notification Hub. Selecteer Apple (APNS) onder Instellingen. Vul vervolgens de certificaatgegevens in:

    • Voor de verificatiemodus selecteert u Certificaat.
    • Upload het .p12-bestand dat u zojuist hebt gemaakt voor het uploaden van het certificaat.
    • Selecteer voor de toepassingsmodus de modus op basis van uw behoeften.

    Wanneer u klaar bent met het invoeren van alle gegevens, selecteert u Opslaan.

    Schermopname van toepassings- en certificaatinstellingen voor een Notification Hub.

Xcode configureren

  1. Ga in Xcode naar de mogelijkheden voor ondertekening en mogelijkheden.

  2. Voeg een mogelijkheid toe door + Mogelijkheid te selecteren en vervolgens Pushmeldingen te selecteren.

  3. Voeg nog een mogelijkheid toe door + Mogelijkheid te selecteren en vervolgens Achtergrondmodi te selecteren.

  4. Selecteer externe meldingen onder Achtergrondmodi.

    Schermopname van het toevoegen van pushmeldingen en achtergrondmodi in Xcode.

  5. Voor Pod Target - AzureCore stelt u alleen app-extensie-veilige API in op Nee.

Pushmeldingen implementeren

Basisversie

Als u een basisversie van pushmeldingen wilt implementeren, moet u zich registreren voor externe meldingen met APNs. Raadpleeg de voorbeeldcode om de gerelateerde implementatie in AppDelegate.swift te bekijken.

Geavanceerde versie

Als u een geavanceerde versie van pushmeldingen wilt implementeren, moet u de volgende items in uw app opnemen. De reden hiervoor is dat voor de versleuteling van klantinhoud (bijvoorbeeld inhoud van chatberichten en weergavenaam van afzender) in nettoladingen voor pushmeldingen enkele tijdelijke oplossingen zijn vereist.

Gegevensopslag voor versleutelingssleutels

Permanente gegevensopslag maken op iOS-apparaten. Deze gegevensopslag moet gegevens kunnen delen tussen de hoofd-app en app-extensies.

Kies in de voorbeeldcode voor deze zelfstudie app-groepen als gegevensopslag door de volgende acties uit te voeren:

  • Voeg de mogelijkheid app-groepen toe aan de doelen van uw app (hoofd-app- en app-extensies) door de stappen in het Apple-artikel Mogelijkheden aan uw app toe te voegen.

  • Configureer app-groepen door de stappen te volgen in het Apple-artikel App-groepen configureren. Zorg ervoor dat uw hoofd-app en uw app-extensies dezelfde containernaam hebben.

Notification Service-extensie

Implementeer de Notification Service-extensie die is gebundeld met de hoofd-app. Deze app-extensie wordt gebruikt voor het ontsleutelen van de payload van de pushmelding wanneer het apparaat het ontvangt.

  1. Ga naar Een service-app-extensie toevoegen aan uw project in de Apple-documentatie en volg de stappen.

  2. Ga naar Handlermethoden van uw extensie implementeren in de Apple-documentatie. Apple biedt de standaardcode voor het ontsleutelen van gegevens en u kunt de algehele structuur voor deze zelfstudie volgen. Omdat u echter de Chat-SDK gebruikt voor ontsleuteling, moet u het onderdeel vervangen dat begint // Try to decode the encrypted message data met aangepaste logica. Raadpleeg de voorbeeldcode om de gerelateerde implementatie in NotificationService.swift te bekijken.

Implementatie van het Protocol PushNotificationKeyStorage

Het PushNotificationKeyStorage protocol is vereist voor de geavanceerde versie van pushmeldingen. U kunt de standaardklasse AppGroupPushNotificationKeyStorage gebruiken die de Chat SDK biedt. Als u app-groepen niet als sleutelopslag gebruikt of als u sleutelopslagmethoden wilt aanpassen, maakt u uw eigen klasse die voldoet aan het PushNotificationKeyStorage protocol.

PushNotificationKeyStorage definieert twee methoden:

  • onPersistKey(encryptionKey:expiryTime): Deze methode wordt gebruikt om de versleutelingssleutel in de opslag van het iOS-apparaat van de gebruiker te behouden. De Chat SDK stelt 45 minuten in als de verlooptijd voor de versleutelingssleutel. Als u wilt dat pushmeldingen langer dan 45 minuten van kracht zijn, moet u een chatClient.startPushNotifications(deviceToken:) oproep vaker plannen (bijvoorbeeld om de 15 minuten), zodat een nieuwe versleutelingssleutel kan worden geregistreerd voordat de oude sleutel verloopt.

  • onRetrieveKeys() -> [String]: Deze methode wordt gebruikt om de geldige sleutels op te halen die eerder zijn opgeslagen. U hebt de flexibiliteit om aanpassingen te bieden op basis van de gegevensopslag die u eerder hebt gekozen.

In de protocolextensie biedt de Chat SDK een implementatie van de decryptPayload(notification:) -> PushNotificationEvent methode die u kunt gebruiken. Raadpleeg de voorbeeldcode om de gerelateerde implementatie in NotificationService.swift te bekijken.

Uw meldingen testen

  1. Maak een chatthread met Gebruiker A en Gebruiker B.

  2. Download de GitHub-opslagplaats voor voorbeeld-apps.

  3. Plaats de waarden en waarden van <ACESS_TOKEN> gebruiker A in AppSettings.plist.<ACS_RESOURCE_ENDPOINT>

  4. Stel Enable Bitcode in op Nee voor twee poddoelen: AzureCommunicationChat en Trouter.

  5. Sluit het iOS-apparaat aan op uw Mac en voer het programma uit. Wanneer u wordt gevraagd pushmeldingen op het apparaat te autoriseren, selecteert u Toestaan.

  6. Als gebruiker B verzendt u een chatbericht. Bevestig dat gebruiker A een pushmelding ontvangt op het iOS-apparaat.

Registratieverlenging implementeren

Om Microsoft een beveiligde chatservice te bieden, blijft de registratie voor pushmeldingen op iOS-apparaten slechts 45 minuten geldig. Als u de functionaliteit van pushmeldingen wilt behouden, moet u registratievernieuwing implementeren in de client-app.

In deze zelfstudie worden twee oplossingen voorgesteld die zijn afgestemd op de officiële richtlijnen van Apple. We raden u aan beide oplossingen samen te implementeren om de effectiviteit ervan te vergroten.

Notitie

Verschillende factoren kunnen van invloed zijn op de effectiviteit van beide oplossingen. De batterijstatus, netwerkomstandigheden en iOS-specifieke beperkingen van het apparaat kunnen bijvoorbeeld van invloed zijn op de mogelijkheid van de app om achtergrondtaken uit te voeren. Zie de video Over het uitvoeren van app-achtergronden en het pushen van achtergrondupdates naar uw app-artikel van Apple voor meer informatie.

Oplossing 1: Achtergrondtaken

Achtergrondtaken bieden een manier om activiteiten uit te voeren, zelfs wanneer de app zich niet op de voorgrond bevindt. Wanneer u een achtergrondtaak implementeert, kan uw app meer tijd vragen om een specifieke taak te voltooien, zoals het vernieuwen van de registratie van pushmeldingen.

In de volgende secties wordt beschreven hoe u achtergrondtaken kunt gebruiken voor registratievernieuwing.

Automatische vernieuwing van tokens voor gebruikerstoegang configureren

Om ononderbroken toegang tot chatservices te garanderen, moet u geldige tokens voor gebruikerstoegang onderhouden. Tokens hebben doorgaans een standaard geldigheidsperiode van 24 uur, waarna ze verlopen en verlenging vereisen. Door een mechanisme voor automatisch vernieuwen te implementeren, kunt u garanderen dat het token geldig is wanneer de chattoepassing wordt geactiveerd.

De Chat SDK stroomlijnt tokenbeheer door het vernieuwingsproces te automatiseren wanneer een aangepast toegangstokenvernieuwer wordt geïmplementeerd. Voer de volgende stappen uit om uw chattoepassing te configureren ter ondersteuning van automatisch vernieuwen van tokens:

  1. Om ervoor te zorgen dat uw chattoepassing continue en veilige gebruikerstoegang behoudt, moet u een servicelaag implementeren die is toegewezen aan het uitgeven van tokens. Eén optie is het gebruik van Azure Functions voor dit doel.

    Als u een Azure-functie wilt maken, raadpleegt u het artikel Een vertrouwde service voor gebruikerstoegang bouwen met behulp van Azure Functions . Hierin wordt beschreven hoe u uw functie-app instelt en de benodigde code implementeert voor het uitgeven van tokens.

  2. Nadat u uw Azure-functie hebt geconfigureerd:

    1. Haal de URL van de tokenverlener op via De Azure-portal. Uw chattoepassing gebruikt deze URL om nieuwe tokens aan te vragen.

    2. Maak en integreer de tokenvernieuwer in uw chattoepassing. Dit onderdeel vraagt nieuwe tokens aan en initialiseert de chatclient voor naadloze automatische tokenvernieuwing.

      Voorbeeldcode voor het vernieuwen van tokens en de integratie met de chatclient is beschikbaar in de GitHub-opslagplaats voor voorbeeld-apps.

Achtergrondtaken inschakelen en plannen

Als u achtergrondtaken in uw iOS-app wilt activeren en plannen, volgt u de stappen in het Apple-artikel Achtergrondtaken gebruiken om uw app bij te werken.

Raadpleeg de GitHub-opslagplaats voor voorbeeld-apps voor praktische implementatie. Het opgegeven voorbeeld maakt gebruik BGProcessingTask van geconfigureerd om niet eerder dan één minuut in de toekomst te initiëren, waarmee wordt gedemonstreerd hoe u efficiënt gegevens op de achtergrond ophaalt.

Oplossing 2: Externe melding

Een externe melding is het mechanisme voor iOS-toepassingen om achtergrondtaken uit te voeren als reactie op externe triggers. U kunt externe meldingen gebruiken voor taken zoals het vernieuwen van registraties zonder tussenkomst van de gebruiker.

Als u externe meldingen wilt gebruiken om een achtergrondtaak uit te voeren:

  1. Implementeer een triggermechanisme.

    U kunt bijvoorbeeld een Azure-functie-app gebruiken als triggermechanisme. Hiermee kunt u code uitvoeren als reactie op verschillende triggers, waaronder HTTP-aanvragen, dus het is handig voor het initiëren van stille pushmeldingen. Vergeet niet om het apparaatregister aan uw kant te implementeren, zodat de functie-app weet waar de meldingen moeten worden bezorgd.

  2. Een Notification Hub instellen.

    De Azure Notification Hubs-service biedt een schaalbare infrastructuur voor pushmeldingen waarmee meldingen kunnen worden verzonden naar elk platform (iOS, Android, Windows enzovoort) vanaf elke back-end (cloud of on-premises).

    U kunt dezelfde Notification Hub die u gebruikt voor normale pushmeldingen opnieuw gebruiken. Als u een nieuwe wilt instellen, raadpleegt u de documentatie van Azure Notification Hubs.

  3. Configureer de Azure-functie-app voor reguliere meldingen.

    Pas de functie-app aan om periodiek externe meldingen te verzenden via de Notification Hub. Deze meldingen worden doorgestuurd naar APNs en doorgestuurd naar het opgegeven apparaat. Zie Notification Hubs-uitvoerbinding voor Azure Functions voor meer instructies.

  4. Meldingen in uw app verwerken.

    Implementeer in uw iOS-app de methode voor het toepassingsexemplaren om een automatische vernieuwing van de registratie te activeren bij het ontvangen van een melding op de achtergrond.

Zie het Apple-artikel Over het instellen van een externe meldingsserver voor meer informatie.