Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Warning
Azure Communication Services voert ingrijpende wijzigingen door en sommige services worden uitgefaseerd. Lees meer in de handleiding voor buitengebruikstelling en ingrijpende wijzigingen.
Dit artikel beschrijft hoe je pushmeldingen maakt in je 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 draait. 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.
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.
In deze handleiding:
- 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
Download de voorbeeldcode op GitHub Azure Voorbeelden Voeg Chat toe aan je app.
Vereisten
Voltooi de vereiste stappen in het artikel 'Voeg chat toe aan je 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 Provisioning van de Notification Hub.
Maak een .p12 APNs-certificaat aan en stel dit in de notificatiehub
Als je geen interne klant van Microsoft bent, voltooi dan de volgende stappen om een Apple Push Notification service (APNs) certificaat aan te maken.
Als je een interne klant van Microsoft bent, dien dan een ticket in en geef de bundel-ID van je app om een .p12 certificaat te krijgen. Ga vervolgens verder met de laatste stap in de volgende procedure.
Meld u aan bij de Apple Developer-portal.
Ga naar Certificaten, Identifiers & Profielen>Identifiers>App-ID's en selecteer vervolgens de app-ID die aan jouw app is gekoppeld.
Op de pagina voor uw app-id selecteert u Mogelijkheden>Pushmeldingen, en selecteer vervolgens Opslaan.
Selecteer Bevestigen in het dialoogvenster App-mogelijkheden wijzigen dat wordt weergegeven.
Selecteer op de pagina voor je app-ID Capabilities>Push Notifications>Configureer en selecteer vervolgens een van de volgende opties:
- 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.
Het gebied Nieuw certificaat maken wordt weergegeven op de pagina Certificaten, Id's en profielen .
In dit gebied uploadt u een aanvraag voor certificaatondertekening (CSR):
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.
Sleep het .cer bestand naar het Kies Bestand gebied. Selecteer Vervolgens Doorgaan in de rechterbovenhoek.
Klik op Downloaden.
Sla het bestand lokaal op in
.p12formaat.
Open het
.cerbestand dat je hebt gedownload. Selecteer in Keychain Access je certificaat, klik er met de rechtermuisknop op en exporteer vervolgens je certificaat in formaat.p12.Ga naar uw Notification Hub. Selecteer Apple (APNS) onder Instellingen. Vul vervolgens de certificaatgegevens in:
- Voor de verificatiemodus selecteert u Certificaat.
- Voor Certificaat uploaden, upload je het
.p12-bestand dat je hebt gemaakt. - Selecteer voor de toepassingsmodus de modus op basis van uw behoeften.
Wanneer u klaar bent met het invoeren van alle gegevens, selecteert u Opslaan.
Xcode configureren
Ga in Xcode naar Ondertekening en mogelijkheden.
Voeg een mogelijkheid toe door + Mogelijkheid te selecteren en vervolgens Pushmeldingen te selecteren.
Voeg nog een mogelijkheid toe door + Mogelijkheid te selecteren en vervolgens Achtergrondmodi te selecteren.
Selecteer externe meldingen onder Achtergrondmodi.
Stel voor Pod Target - AzureCore 'Vereis alleen app-extensie-veilige API's' in op Nee.
Pushmeldingen implementeren
Basisversie
Als u een basisversie van pushmeldingen wilt implementeren, moet u zich registreren voor externe meldingen met APNs. Voor de gerelateerde implementatie in AppDelegate.swift, zie GitHub Azure Samples App delegate Swift-code.
Geavanceerde versie
Als u een geavanceerde versie van pushmeldingen wilt implementeren, moet u de volgende items in uw app opnemen. De reden is dat het versleutelen van klantinhoud (bijvoorbeeld chatberichtinhoud en afzendernaam) in pushnotificatie-payloads enkele workarounds vereist.
Gegevensopslag voor versleutelingssleutels
Permanente gegevensopslag maken op iOS-apparaten. Deze gegevensopslag moet data delen tussen de hoofdapp en de app-extensies.
In de voorbeeldcode voor deze tutorial kies App Groups je als gegevensopslag als volgt:
Voeg de mogelijkheid App-groepen toe voor de doelen van uw app (hoofda pp en app-extensies) door de stappen in het Apple-artikel Mogelijkheden toevoegen aan je app te volgen.
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.
Uitbreiding voor meldingsservice
Implementeer de Notification Service-extensie die is gebundeld met de hoofd-app. Deze app-extensie ontsleutelt de pushmeldingspayload wanneer het apparaat deze ontvangt.
Zie Voeg een service-app-extensie toe aan je project in de Apple-documentatie en volg de stappen.
Zie Implementeer de handlermethoden van je extensie 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.
Voor de gerelateerde implementatie in NotificationService.swift, zie de GitHub Azure Samples Notification Service voor Swift.
Implementatie van het Protocol PushNotificationKeyStorage
Het PushNotificationKeyStorage protocol is vereist voor de geavanceerde versie van pushmeldingen. Je kunt de standaardklasse AppGroupPushNotificationKeyStorage gebruiken die de Chat SDK aanbiedt. 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 houdt de encryptiesleutel vast in de opslag van het iOS-apparaat van de gebruiker. 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 eenchatClient.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 haalt de geldige sleutels op 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. Voor de gerelateerde implementatie in NotificationService.swift, zie GitHub Azure Samples Notification Service voor Swift.
Uw meldingen testen
Maak een chatthread met Gebruiker A en Gebruiker B.
Download de GitHub-opslagplaats voor voorbeeld-apps.
Plaats de waarden van
<ACCESS_TOKEN>en<ACS_RESOURCE_ENDPOINT>van gebruiker A in AppSettings.plist.Stel Enable Bitcode in op Nee voor twee poddoelen: AzureCommunicationChat en Trouter.
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.
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.
Dit artikel beschrijft twee oplossingen die aansluiten bij de officiële richtlijnen van Apple. We raden u aan beide oplossingen samen te implementeren om de effectiviteit ervan te vergroten.
Notitie
Veel factoren kunnen de effectiviteit van beide oplossingen beïnvloeden. 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 vooruitgang in het uitvoeren van app-achtergronden en het artikel over het pushen van achtergrondupdates naar uw app van Apple voor meer informatie.
Oplossing 1: Achtergrondtaken
Achtergrondtaken bieden een manier om activiteiten uit te voeren, zelfs als de app niet op de voorgrond staat. 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:
Om ervoor te zorgen dat je chatapplicatie continue en veilige gebruikerstoegang heeft, moet je een servicelaag implementeren die zich richt op 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.
Nadat u uw Azure-functie hebt geconfigureerd:
Haal de URL van de tokenverlener op via De Azure-portal. Uw chattoepassing gebruikt deze URL om nieuwe tokens aan te vragen.
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.
Voor praktische implementatie, zie de GitHub Azure Voorbeelden Voeg Chat toe aan je app. Het opgegeven voorbeeld maakt gebruik van BGProcessingTask, die geconfigureerd is om pas na één minuut in de toekomst te starten, waarmee wordt gedemonstreerd hoe u efficiënt gegevens op de achtergrond binnenhaalt.
Oplossing 2: Melding op afstand
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:
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.
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.
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.
Meldingen in uw app verwerken.
Implementeer in uw iOS-app de applicatie-instantiemethode om een automatische vernieuwing van de registratie te activeren bij het ontvangen van een stille melding.
Zie het Apple-artikel Over het instellen van een externe meldingsserver voor meer informatie.