Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird beschrieben, wie Pushbenachrichtigungen in Ihrer iOS-App mithilfe des Azure Communication Services Chat SDK erstellt werden.
Pushbenachrichtigungen informieren Benutzer über in einem Chatthread eingehende Nachrichten, wenn die mobile App nicht im Vordergrund ausgeführt wird. Azure Communication Services unterstützt zwei Versionen von Pushbenachrichtigungen:
Basisversion: Auf dem Symbol der App wird eine Badgenummer angezeigt, das Gerät gibt einen Benachrichtigungston wieder, und ein Pop-up-Warnungsbanner wird angezeigt.
Erweiterte Version: Zusätzlich zu den in der Basisversion unterstützten Features können Sie den Titel und die Nachrichtenvorschau im Benachrichtigungsbanner anpassen.
In diesem Tutorial führen Sie Folgendes durch:
- Richten Sie ein Apple Push Notification Service-Zertifikat (APNs) ein.
- Konfigurieren Sie Xcode für Pushbenachrichtigungen.
- Implementieren Sie eine Basisversion oder erweiterte Version der Pushbenachrichtigungen.
- Testen Sie die Benachrichtigungen in Ihrer App.
- Richten Sie die automatische Registrierungsverlängerung für Pushbenachrichtigungen ein.
Code herunterladen
Laden Sie den Beispielcode von GitHub Azure Samples herunter Fügen Sie Ihrer App einen Chat hinzu.
Voraussetzungen
Führen Sie die erforderlichen Schritte im Artikel "Chat hinzufügen" aus .
Erstellen Sie einen Azure Notification Hub innerhalb des Abonnements, in dem sich auch Ihre Communication Services-Ressource befindet, und verknüpfen Sie dann den Notification Hub mit Ihrer Communication Services-Ressource. Weitere Informationen finden Sie unter Bereitstellen von Notification Hub.
Erstellen sie ein .p12
APNs-Zertifikat, und legen Sie es im Benachrichtigungshub fest.
Wenn Sie kein interner Microsoft-Kunde sind, führen Sie die Schritte im folgenden Verfahren aus, um ein APNs-Zertifikat (Apple Push Notification Service) zu erstellen.
Wenn Sie ein interner Microsoft-Kunde sind, übermitteln Sie ein Ticket , und geben Sie die Paket-ID Ihrer App an, um ein .p12
Zertifikat zu erhalten. Überspringen Sie anschließend zum letzten Schritt im folgenden Verfahren.
Melden Sie sich beim Apple Developer-Portal an.
Wechseln Sie zu
Zertifikaten, Bezeichner & Profile Bezeichner App-IDs , und wählen Sie dann die App-ID aus, die Ihrer App zugeordnet ist.Wählen Sie auf der Seite für Ihre App-ID zunächst Funktionen>Pushbenachrichtigungen und dann die Option Speichern aus.
Wählen Sie im angezeigten Dialogfeld App-Funktionen ändern die Schaltfläche Bestätigen aus.
Wählen Sie auf der Seite für Ihre App-ID "Funktionen>für Pushbenachrichtigungen>konfigurieren" und dann eine der folgenden Optionen aus:
- Wählen Sie zum Testen von Pushbenachrichtigungen beim Entwickeln einer iOS-App die Schaltfläche Zertifikat erstellen unter SSL-Zertifikat für die Entwicklung aus.
- Wählen Sie zum Senden von Pushbenachrichtigungen in der Produktion die Schaltfläche Zertifikat erstellen unter SSL-Zertifikat für die Entwicklung aus.
Der Bereich Neues Zertifikat erstellen wird auf der Seite Zertifikate, Bezeichner und Profile angezeigt.
In diesem Bereich laden Sie eine Zertifikatsignieranforderung (Certificate Signing Request, CSR) hoch:
Folgen Sie auf einer neuen Browserregisterkarte dieser Apple-Hilfeseite, um eine CSR zu erstellen und die Datei als App name.cer zu speichern. Die Anweisungen umfassen die Verwendung des Zertifikat-Assistenten zum Anfordern eines Zertifikats und zum Ausfüllen der Zertifikatinformationen.
Ziehen Sie die CER-Datei in den Bereich Datei auswählen. Wählen Sie dann in der oberen rechten Ecke die Schaltfläche Weiter aus.
Wählen Sie Herunterladen aus.
Speichern Sie die Datei lokal im
.p12
Format.Öffnen Sie die
.cer
heruntergeladene Datei. Wählen Sie in Der Schlüsselbundzugriff Ihr Zertifikat aus, klicken Sie mit der rechten Maustaste darauf, und exportieren Sie das Zertifikat dann im.p12
Format.Wechseln Sie zu Ihrem Benachrichtigungszentrum. Wählen Sie unter Einstellungen die Option Apple (APNs) aus. Geben Sie dann die Zertifikatdetails ein:
- Wählen Sie für Authentifizierungsmodus die Option Zertifikat aus.
- Laden Sie für das Hochladen des Zertifikats die
.p12
von Ihnen erstellte Datei hoch. - Wählen Sie für Anwendungsmodus den Modus entsprechend Ihrem Bedarf aus.
Wenn Sie alle Informationen eingegeben haben, wählen Sie die Option Speichern aus.
Xcode konfigurieren
Navigieren Sie in Xcode zur Registerkarte Signing & Capabilities (Signieren und Funktionen).
Fügen Sie eine Funktionalität hinzu, indem Sie + Funktionalität und anschließend Pushbenachrichtigungen auswählen.
Fügen Sie eine weitere Funktionalität hinzu, indem Sie + Funktionalität und anschließend Hintergrundmodi auswählen.
Wählen Sie unter Hintergrundmodi die Option Remotebenachrichtigungen aus.
Legen Sie für Pod-Target – AzureCore die Option Nur App-Extension-Safe-API anfordern auf Nein fest.
Implementieren von Pushbenachrichtigungen
Basisversion
Wenn Sie eine Basisversion von Pushbenachrichtigungen implementieren möchten, müssen Sie sich für Remotebenachrichtigungen über APNs registrieren. Informationen zur zugehörigen Implementierung finden Sie unter AppDelegate.swift
GitHub Azure Samples App Delegate Swift Code.
Erweiterte Version
Wenn Sie eine erweiterte Version von Pushbenachrichtigungen implementieren möchten, müssen Sie in Ihrer App die folgenden Punkte berücksichtigen. Der Grund dafür ist, dass das Verschlüsseln von Kundeninhalten (z. B. Chatnachrichteninhalt und Anzeigename des Absenders) in Pushbenachrichtigungsnutzlasten einige Problemumgehungen erfordert.
Datenspeicher für Verschlüsselungsschlüssel
Erstellen Sie einen beständigen Datenspeicher auf iOS-Geräten. Diese Datenspeicherung muss Daten zwischen der Hauptanwendung und den App-Erweiterungen teilen.
Wählen Sie im Beispielcode für dieses Lernprogramm wie folgt als Datenspeicher aus App Groups
:
Fügen Sie die Funktion der App-Gruppen den Zielen Ihrer App (Haupt-App und App-Erweiterungen) hinzu, indem Sie die Schritte im Apple-Artikel Hinzufügen von Funktionen zu Ihrer App ausführen.
Konfigurieren Sie App-Gruppen, indem Sie die Schritte im Apple-Artikel Konfigurieren von App-Gruppen ausführen. Stellen Sie sicher, dass Ihre Haupt-App und Ihre App-Erweiterung denselben Containernamen aufweisen.
Benachrichtigungsdiensterweiterung
Implementieren Sie die Benachrichtigungsdiensterweiterung, die mit der Haupt-App gebündelt ist. Diese App-Erweiterung entschlüsselt die Nutzlast der Pushbenachrichtigung, wenn das Gerät sie empfängt.
Weitere Informationen finden Sie unter Hinzufügen einer Dienst-App-Erweiterung zu Ihrem Projekt in der Apple-Dokumentation, und führen Sie die Schritte aus.
Siehe Implementieren der Handlermethoden Ihrer Erweiterung in der Apple-Dokumentation.
Apple stellt den Standardcode zum Entschlüsseln von Daten bereit, und Sie können der Gesamtstruktur für dieses Tutorial folgen. Da Sie jedoch das Chat-SDK für die Entschlüsselung verwenden, müssen Sie den Teil, der von // Try to decode the encrypted message data
beginnt, durch angepasste Logik ersetzen.
Informationen zur zugehörigen Implementierung in NotificationService.swift
finden Sie in den GitHub Azure-Beispielen Benachrichtigungsdienst für Swift.
Implementierung des PushNotificationKeyStorage-Protokolls
Das PushNotificationKeyStorage
-Protokoll ist für die erweiterte Version von Pushbenachrichtigungen erforderlich. Sie können die Standardklasse AppGroupPushNotificationKeyStorage
verwenden, die das Chat SDK bereitstellt. Wenn Sie App-Gruppen nicht als Schlüsselspeicher verwenden oder Schlüsselspeichermethoden anpassen möchten, erstellen Sie Ihre eigene Klasse, die dem PushNotificationKeyStorage
-Protokoll entspricht.
Für PushNotificationKeyStorage
werden zwei Methoden definiert:
onPersistKey(encryptionKey:expiryTime)
: Diese Methode behält den Verschlüsselungsschlüssel im Speicher des iOS-Geräts des Benutzers bei. Das Chat-SDK legt 45 Minuten als Ablaufzeit des Verschlüsselungsschlüssels fest. Wenn die Pushbenachrichtigung länger als 45 Minuten wirksam sein soll, müssen Sie einen Aufruf vonchatClient.startPushNotifications(deviceToken:)
häufiger einplanen (z. B. alle 15 Minuten), damit ein neuer Verschlüsselungsschlüssel registriert werden kann, bevor der alte Schlüssel abläuft.onRetrieveKeys() -> [String]
: Diese Methode ruft die gültigen Schlüssel ab, die zuvor gespeichert wurden. Sie haben die Flexibilität, die Anpassung basierend auf dem von Ihnen zuvor ausgewählten Datenspeicher bereitzustellen.
In der Protokollerweiterung bietet das Chat-SDK eine Implementierung der decryptPayload(notification:) -> PushNotificationEvent
-Methode, die Sie verwenden können. Informationen zur zugehörigen Implementierung finden Sie unter NotificationService.swift
GitHub Azure Samples Notification Service für Swift.
Testen Ihrer Benachrichtigungen
Erstellen Sie einen Chatthread mit Benutzer A und Benutzer B.
Laden Sie das GitHub-Repository für Beispiel-Apps herunter.
Fügen Sie die
<ACCESS_TOKEN>
- und<ACS_RESOURCE_ENDPOINT>
-Werte von Benutzer A in AppSettings.plist ein.Setzen Sie Bitcode aktivieren für die beiden Pod-Ziele auf Nein: AzureCommunicationChat und Trouter.
Verbinden Sie das iOS-Gerät mit Ihrem Mac, führen Sie das Programm aus. Wenn Sie aufgefordert werden, Pushbenachrichtigungen auf dem Gerät zu autorisieren, wählen Sie Zulassen aus.
Senden Sie eine Chatnachricht als Benutzer B. Vergewissern Sie sich, dass Benutzer A eine Pushbenachrichtigung auf dem iOS-Gerät erhält.
Implementieren der Registrierungsverlängerung
Damit Microsoft einen sicheren Chatdienst bereitstellen kann, bleibt die Registrierung für Pushbenachrichtigungen auf iOS-Geräten nur 45 Minuten gültig. Um die Funktionalität von Pushbenachrichtigungen aufrechtzuerhalten, müssen Sie die Registrierungsverlängerung in der Client-App implementieren.
In diesem Artikel werden zwei Lösungen beschrieben, die den offiziellen Richtlinien von Apple entsprechen. Es wird empfohlen, beide Lösungen zusammen zu implementieren, um ihre Effektivität zu steigern.
Hinweis
Viele Faktoren können die Wirksamkeit einer lösung beeinflussen. Beispielsweise könnten sich der Akkustatus, die Netzwerkbedingungen und die iOS-spezifischen Einschränkungen des Geräts auf die Funktion der App zum Ausführen von Hintergrundaufgaben auswirken. Weitere Informationen finden Sie im Video Fortschritte bei der App-Ausführung im Hintergrund und Artikel Pushen von Hintergrundaktualisierungen an Ihre App von Apple.
Lösung 1: Hintergrundaufgaben
Hintergrundaufgaben bieten eine Möglichkeit zum Ausführen von Aktivitäten, auch wenn sich die App nicht im Vordergrund befindet. Wenn Sie eine Hintergrundaufgabe implementieren, kann Ihre App mehr Zeit anfordern, um eine bestimmte Aufgabe auszuführen (z. B. die Verlängerung der Pushbenachrichtigungsregistrierung).
In den folgenden Abschnitten wird beschrieben, wie Sie Hintergrundaufgaben für die Verlängerung der Registrierung verwenden können.
Konfigurieren der automatischen Verlängerung von Benutzerzugriffstoken
Um den unterbrechungsfreien Zugriff auf Chatdienste sicherzustellen, müssen Sie die Gültigkeit von Benutzerzugriffstoken sicherstellen. Token verfügen in der Regel über einen Standardgültigkeitszeitraum von 24 Stunden, nach dem sie ablaufen und eine Verlängerung erfordern. Durch die Implementierung eines Mechanismus für die automatische Verlängerung wird sichergestellt, dass das Token gültig ist, wenn die Chatanwendung aktiviert wird.
Das Chat-SDK optimiert die Tokenverwaltung, indem der Verlängerungsprozess automatisiert wird, wenn eine Verlängerungsfunktion für benutzerdefinierte Zugriffstoken implementiert wird. Führen Sie die folgenden Schritte aus, um Ihre Chatanwendung so zu konfigurieren, dass die automatische Verlängerung des Tokens unterstützt wird:
Um sicherzustellen, dass Ihre Chatanwendung den kontinuierlichen und sicheren Benutzerzugriff aufrecht erhält, müssen Sie eine Dienstebene implementieren, die sich auf das Ausstellen von Token bezieht. Eine Möglichkeit besteht darin, Azure Functions für diesen Zweck zu verwenden.
Informationen zum Erstellen einer Azure-Funktion finden Sie im Artikel Erstellen eines vertrauenswürdigen Benutzerzugriffsdiensts mithilfe von Azure Functions. In ihm wird beschrieben, wie Sie Ihre Funktions-App einrichten und den Code bereitstellen, der zum Ausstellen von Token erforderlich ist.
Führen Sie nach dem Konfigurieren Ihrer Azure-Funktion die folgenden Schritte aus:
Rufen Sie die Tokenausteller-URL aus dem Azure-Portal ab. Ihre Chatanwendung verwendet diese URL zum Anfordern neuer Token.
Erstellen Sie die Tokenverlängerungsfunktion, und integrieren Sie sie in Ihre Chatanwendung. Diese Komponente fordert neue Token an und initialisiert den Chatclient für eine nahtlose automatische Tokenverlängerung.
Der Beispielcode für die Tokenverlängerungsfunktion und deren Integration in den Chatclient ist im GitHub-Repository für Beispiel-Apps verfügbar.
Aktivieren und Planen von Hintergrundaufgaben
Um Hintergrundaufgaben in Ihrer iOS-App zu aktivieren und zu planen, führen Sie die Schritte im Apple-Artikel Verwenden von Hintergrundaufgaben zum Aktualisieren Ihrer App aus.
Praktische Implementierung finden Sie im GitHub Azure Samples Add Chat to your app. Im bereitgestellten Beispiel wird BGProcessingTask
verwendet. Dieses Element ist so konfiguriert, dass es nicht früher als eine Minute in der Zukunft initiiert wird. Es zeigt, wie Daten effizient im Hintergrund abgerufen werden.
Lösung 2: Remotebenachrichtigung
Eine Remotebenachrichtigung ist der Mechanismus für iOS-Anwendungen zum Ausführen von Hintergrundaufgaben als Reaktion auf externe Trigger. Sie können Remotebenachrichtigungen für Aufgaben wie das Verlängern von Registrierungen ohne Benutzereingriff verwenden.
Führen Sie die folgenden Schritte aus, um mithilfe von Remotebenachrichtigungen eine Hintergrundaufgabe auszuführen:
Implementieren eines Triggermechanismus.
Sie können beispielsweise eine Azure-Funktions-App als Triggermechanismus verwenden. Dies ermöglicht Ihnen, Code als Reaktion auf verschiedene Trigger auszuführen (einschließlich HTTP-Anforderungen), sodass es nützlich ist, automatische Pushbenachrichtigungen zu initiieren. Denken Sie daran, die Geräteregistrierung in Ihrer Komponente zu implementieren, damit die Funktions-App weiß, wohin die Benachrichtigungen übermittelt werden sollen.
Einrichten eines Notification Hubs.
Der Azure Notification Hubs-Dienst bietet eine skalierbare Pushbenachrichtigungsinfrastruktur, die Benachrichtigungen an eine beliebige Plattform (iOS, Android, Windows usw.) von jedem Back-End (Cloud oder lokal) senden kann.
Sie können denselben Notification Hub wiederverwenden, den Sie für normale Pushbenachrichtigungen verwenden. Weitere Informationen zum Einrichten eines neuen Hubs finden Sie in der Dokumentation zu Azure Notification Hubs.
Konfigurieren der Azure-Funktions-App für regelmäßige Benachrichtigungen.
Passen Sie die Funktions-App so an, dass Remotebenachrichtigungen regelmäßig über den Notification Hub gesendet werden. Diese Benachrichtigungen werden an den APNs und das angegebene Gerät weitergeleitet. Weitere Anweisungen finden Sie unter Notification Hubs-Ausgabebindung für Azure Functions.
Behandeln von Benachrichtigungen in Ihrer App.
Implementieren Sie in Ihrer iOS-App die Anwendungsinstanzmethode, um eine automatische Aktualisierung der Registrierung beim Empfang einer stillen Benachrichtigung auszulösen.
Weitere Informationen finden Sie im Apple-Artikel Einrichten eines Remotebenachrichtigungsservers.