Erstellen und Senden von Push-Benachrichtigungen an iOS mit Event Notifications
Erstellen Sie einen Event Notifications-Service, fügen Sie ein Push-Ziel für Apple Push Notification Service (APNs) hinzu und senden Sie Nachrichten an iOS-Geräte.
Was ist Event Notifications?
Event Notifications ist ein Routing-Dienst für Ereignisbenachrichtigungen, der Sie über kritische Ereignisse in Ihrem IBM Cloud benachrichtigt oder mithilfe von Webhooks automatisierte Aktionen auslöst. Sie können Ereignisbenachrichtigungen von IBM Cloud wie Availability Monitoring filtern und an E-Mail, SMS, Push-Benachrichtigungen (FCM oder APNs) und Webhooks weiterleiten.
Wie verwenden Clients iOS Push-Benachrichtigungen?
Das folgende Diagramm zeigt, wie Clients iOS-Push-Benachrichtigungen verwenden.
Ziele
Dieses Lernprogramm zeigt im Folgenden, wie Sie Push-Benachrichtigungen senden:
- Erstellen Sie eine mobile App mit Event Notifications.
- APNs-Berechtigungsnachweise abrufen.
- Laden Sie den Code herunter und schließen Sie die Benachrichtigungskonfiguration ab.
- Konfigurieren und senden Sie iOS-Push-Benachrichtigungen an ein mobiles Gerät.
Vorbereitende Schritte
Folgende Voraussetzungen müssen erfüllt sein:
- Ein IBM Cloud-Konto. Wenn Sie nicht über ein Konto verfügen, erstellen Sie ein IBM Cloud-Konto.
- Eine Event Notifications.
- Ein IAM-API-Schlüssel, mit dem das SDK auf Ihr Konto zugreifen kann. Erstellen Sie eine hier.
- Xcode 9.3+
- Swift 4.2+
- iOS 10.0+
Erstellen Sie eine Event Notifications-Serviceinstanz.
- Melden Sie sich bei IBM Cloud-Accountan.
- Suchen Sie im KatalogIBM Cloud nach "
Event Notifications > Event Notifications
. - Wählen Sie eine
Region
in der Liste der unterstützten Regionen und einepricing plan
aus. - Geben Sie eine
Service name
an. - Wählen Sie eine
resource group
aus. - Akzeptieren Sie die Lizenzvereinbarungen und Bedingungen, indem Sie auf das Kontrollkästchen klicken.
- Klicken Sie auf
Create
.
APNs-Berechtigungsnachweise abrufen
Bei iOS-Geräten und -Anwendungen können Anwendungsentwickler mit dem Apple Push Notification Service (APNs) ferne Benachrichtigungen von der Event Notifications-Serviceinstanz in IBM Cloud (dem Provider) an iOS-Geräte und -Anwendungen senden. Die Nachrichten werden an eine Zielanwendung auf dem Gerät gesendet.
Sie müssen die APNs-Berechtigungsnachweise abrufen und konfigurieren. Die APNs-Zertifikate werden vom Event Notifications-Service sicher verwaltet und zum Herstellen einer Verbindung zum APNs-Server als Provider verwendet.
App-IDs registrieren
Die App-ID (Bundle-ID) ist eine eindeutige Kennung für eine bestimmte Anwendung. Für jede Anwendung ist eine App-ID erforderlich. Services wie der Push-Benachrichtigungs-Service werden für App-ID konfiguriert.
-
Gehen Sie zum Apple-Entwicklerportal und wählen Sie Zertifikate, Identifikatoren und Profile.
Certificates, Identifiers & Profiles -
Rufen Sie
Identifiers > Add identifier button
auf.Identifier Button -
Klicken Sie auf die Schaltfläche "Neuen
Identifier
hinzufügen".
-
Wählen Sie die Option App-IDs aus.
App IDs option -
Wählen Sie einen Typ aus und klicken Sie auf
Continue
.App ID type -
Geben Sie eine Zeichenfolge für das App-ID-Präfix an. Geben Sie den Namen der App in das Feld "
Description
ein. Beispiel: Event Notifications iOS-Anwendung -
Wählen Sie für "
Bundle ID
die Option Explizit und geben Sie einen Wert für die Bündel-ID an. Es wird empfohlen, die umgekehrte Zeichenfolge eines Domänennamens zu verwenden. Zum Beispielcom.ibm.cloud.en.app
.{: caption="erstellenNeue App ID " caption-side="bottom"} erstellen
-
Wählen Sie das Kontrollkästchen
Push Notifications
in den Funktionen aus und klicken Sie aufContinue
.caption-side=bottom" -
Gehen Sie Ihre Einstellungen durch und klicken Sie auf
Register > Done
.
Ihre App-ID ist nun registriert.

SSL-Zertifikat zum Entwickeln und Verteilen von APNs erstellen
Bevor Sie ein APNs-Zertifikat anfordern, müssen Sie zunächst eine Zertifikatssignieranforderung (Certificate Signing Request, CSR) generieren und an die Zertifizierungsstelle (Certificate Authority, CA) von Apple schicken. Die CSR enthält Informationen zum Identifizieren Ihres Unternehmens und beinhaltet Ihren öffentlichen sowie Ihren privaten Schlüssel, den Sie zum Signieren Ihrer Apple-Push-Benachrichtigungen verwenden. Generieren Sie anschließend das SSL-Zertifikat in iOS Developer Portal. Das Zertifikat mit dem zugehörigen öffentlichen und privaten Schlüssel wird in Keychain Access gespeichert.
Sie können APNs auf zwei Weisen verwenden:
- Sandboxmodus zum Entwickeln und Testen.
- Produktionsmodus zum Verteilen von Anwendungen über den App Store (oder über die Verteilungsmechanismen anderer Unternehmen.
Sie müssen separate Zertifikate für Ihre Entwicklungs- und Verteilungsumgebungen anfordern. Die Zertifikate werden einer App-ID für die App zugeordnet, die der Empfänger für ferne Benachrichtigungen ist. Für die Produktion können Sie bis zu zwei Zertifikate erstellen. IBM Cloud verwendet die Zertifikate zum Herstellen einer SSL-Verbindung zu APNs.
APN-Zertifikat (p12) erstellen
-
Rufen Sie das Apple Developer Portal auf und wählen Sie Zertifikate, IDs & Profile aus.
Certificates, Identifiers & Profiles -
Wählen Sie in
Identifiers area
Ihre App-ID aus.{: caption=""Identifikatoren" * " caption-side="bottom"} "Identifikatoren" *
-
Wählen Sie das Kontrollkästchen
Push Notifications
ODER die OptionEdit
aus.caption-side=bottom" - Klicken Sie im Bereich "SSL-Zertifikat für Entwicklung" auf "Zertifikat erstellen" ...
- Klicken Sie im Bereich "Produktions-SSL-Zertifikat" auf "Zertifikat erstellen" ...
Certificate type -
Verwenden Sie die Keychain Access-Anwendung auf Ihrem Mac, um eine Zertifikatssignieranforderung (CSR) zu erstellen.
-
Wählen Sie aus dem Menü "
Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority…
.caption-side=bottom" -
Geben Sie unter Zertifikatsinformationen die E-Mail-Adresse, die Ihrem App-Entwicklerkonto zugeordnet ist, und einen allgemeinen Namen ein. Geben Sie einen aussagekräftigen Namen an, mit dem Sie ermitteln können, ob es sich um ein Zertifikat für die Entwicklung (Sandbox) oder Verteilung (Produktion) handelt, z. B. sandbox-apns-zertifikat oder production-apns-zertifikat.
-
Wählen Sie
Saved to disk
aus, um die Datei.certSigningRequest
auf Ihren Mac herunterzuladen, und klicken dann aufContinue
.Certificate details -
Benennen Sie die Datei
.certSigningRequest
in der MenüoptionSave As
, wählen Sie die Position aus, an der die Datei gespeichert sein muss und klicken Sie aufSave
.Save CSR file -
Klicken Sie auf
Done
. Sie haben eine CSR erstellt.caption-side=bottom" -
Gehen Sie zurück zum Apple-Entwicklerportal, klicken Sie bei der Option CSR-Datei hochladen auf Datei auswählen und wählen Sie die Datei "
CertificateSigningRequest.certSigningRequest
. Klicken Sie aufContinue
.caption-side=bottom" -
Klicken Sie auf
Download
. Die Dateiaps_development.cer
wird heruntergeladen.caption-side=bottom" -
Suchen Sie das neu installierte Zertifikat. Doppelklicken Sie auf das Zertifikat, damit es in Keychain Access installiert wird.
-
Gehen Sie auf Ihrem Mac zu
Keychain Access > My Certificates
. -
Wählen Sie das Zertifikat und den privaten Schlüssel aus und wählen Sie dann
Export
aus, um das Zertifikat in das persönliche Datenaustauschformat (.p12
-Format) zu konvertieren.caption-side=bottom" -
Geben Sie im Feld
Save As
einen aussagekräftigen Namen für das Zertifikat an. Beispiel: sandbox-apns.p12 oder production-apns.p12. Klicken Sie dann aufSave
.caption-side=bottom" -
Geben Sie im Feld
Enter a password
ein Kennwort ein, um die exportierten Elemente zu schützen, und klicken Sie anschließend aufOK
. Dieses Kennwort können Sie verwenden, um Ihre APNs-Einstellungen in der Event Notifications-Servicekonsole zu konfigurieren.caption-side=bottom" -
Die Key Access-App fordert Sie auf, Ihren Schlüssel aus der Keychain-Anzeige zu exportieren. Geben Sie Ihr Administratorkennwort für Ihren Mac ein, damit Ihr System diese Elemente exportieren kann, und wählen Sie dann die Option 'Immer zulassen' aus. An der ausgewählten Position wird ein .p12-Zertifikat generiert.
APN-Token (p8) erstellen
-
Rufen Sie das Apple-Entwicklerportal auf und wählen Sie "
Certificates, Identifiers & Profiles
.Certificates, Identifiers & Profiles -
Gehen Sie zur Registerkarte '
Keys
.
-
Geben Sie
Key Name
ein und aktivieren Sie APNs und klicken Sie aufcontinue
.P8 token details -
Klicken Sie auf
Register
.Register p8 token -
Stellen Sie sicher, dass Sie die Schlüssel nach der Registrierung auf einer neuen Seite herunterladen, da es sich um einen einmaligen Vorgang handelt.
KeyID
ist als Teil der Datei sichtbar und wird in der Benutzeroberfläche angezeigt, dieser " KeyID
wird für die Registrierung des APNS-Zertifikats verwendet. TeamID
wird von Apple für das Entwicklerkonto
bereitgestellt und ist neben dem Teamnamen zu sehen. TeamID
wird für die Registrierung des APNS-Zertifikats verwendet. BundleID
kann wie das P12 registriert werden.
Generische API-Quelle hinzufügen
Führen Sie die folgenden Schritte aus:
- Wechseln Sie zum Abschnitt
Sources
des Event Notifications-Dashboards. - Klicken Sie auf
Add
und wählen Sie eine API-Quelle aus. - Geben Sie einen Namen und eine optionale Beschreibung ein und klicken Sie auf
Add
.
Event Notifications-Ziel erstellen
Klicken Sie in der Event Notifications-Konsole auf Destinations
und fügen Sie die folgenden Zieldetails hinzu:
Name
: Fügen Sie einen Namen für das Ziel hinzu.Description
: Fügen Sie eine optionale Beschreibung für das Ziel hinzu.Type
: Wählen Sie den Typ "iOS Push Notifications
aus der Dropdown-Liste.- Wählen Sie einen Zielplan aus: Vorproduktionsziel oder Produktionsziel.
Pre-production destination
-Wählen Sie dieses Ziel als kostengünstiges Push-Ziel für Ihre Entwicklungs-und Testumgebung aus.Production destination
-Nutzen Sie die volle Funktionalität dieses Ziels. Unbegrenzt viele Geräte und ausgehende Nachrichten erlaubt.
- Aktualisieren Sie die iOS mit den Details basierend auf "
Authentication Type
und wählen Sie "Environment
.- Wenn der Zertifikatstyp
p8
ist, laden Sie die .p8-Datei hoch und geben SieKeyID
,TeamID
undBundleID
an. - wenn der Zertifikatstyp "
p12
ist, laden Sie das p12 hoch und stellen Sie das Zertifikat "password
bereit.
- Wenn der Zertifikatstyp
- Klicken Sie auf
Add
.
Event Notifications-Thema erstellen
Wählen Sie Topics
in der Event Notifications-Konsole aus und klicken Sie auf Create
. Geben Sie die folgenden Themendetails ein:
Name
: Geben Sie einen Namen für das Thema ein.Description
: Fügen Sie eine optionale Beschreibung für das Thema hinzu.Source
: Wählen Sie eine Quelle aus der Dropdown-Liste aus.Event type
: Wählen Sie in der Dropdown-Liste den Ereignistyp aus.Event sub type
Wählen Sie in der Dropdown-Liste der Ereignisuntertypen den Ereignisuntertyp aus.Severity
: Wählen Sie in der Dropdown-Liste den Schweregrad aus.Advanced conditions
: Schreiben Sie Ihre eigenen angepassten Bedingungen, die den jsonpath-Spezifikationen entsprechen müssen.
Event Notifications-Subskription erstellen
Klicken Sie in der Event Notifications-Konsole auf Subscriptions
. Geben Sie die folgenden Abonnementdetails ein:
- Klicken Sie auf
Click
, um den Subskriptionsassistenten anzuzeigen. - Vervollständigen Sie die folgenden Abonnementdetails:
Subscription name
: Name des Abonnements.Subscription description
: Fügen Sie eine optionale Beschreibung hinzu.
- Wählen Sie im Abschnitt
Subscribe to a topic
ein Thema aus der Dropdown-Liste aus und wählen Sie ein Ziel aus der Dropdown-Liste aus. Destination type
: Wählen Sie den Typ unterDestination
aus und klicken aufAdd
.
Event Notifications iOS-SDK einrichten
Das iOS-SDK ermöglicht iOS-Apps den Empfang von Push-Benachrichtigungen. Führen Sie die folgenden Schritte aus, um das Event Notifications iOS SDK zu installieren, das SDK zu initialisieren und sich für Benachrichtigungen für Ihre iOS-App zu registrieren.
Installation
Die aktuelle Version dieses SDK ist: 0.0.1
Um das iOS Event Notifications zu verwenden, definieren Sie eine Abhängigkeit, die die Artefaktkoordinaten (Gruppen-ID, Artefakt-ID und Version) für den Dienst enthält, etwa so:
CocoaPods
use_frameworks!
target 'MyApp' do
pod 'ENPushDestination', '~> 0.0.1'
end
Carthage
Fügen Sie Folgendes zu Ihrer Cartfile hinzu, um ENPushDestination
mithilfe von Carthage zu installieren:
github "IBM/event-notifications-destination-ios-sdk" ~> 0.0.1
Führen Sie dann den folgenden Befehl aus, um die Abhängigkeiten und Frameworks zu erstellen:
carthage update --platform iOS
Swift Package Manager
Fügen Sie der Datei Package.swift
Folgendes hinzu, um ENPushDestination als Abhängigkeit anzugeben. Der Paketmanager klont ENPushDestination, wenn Sie Ihr Projekt mit swift build bauen.
dependencies: [
.package(url: "https://github.com/IBM/event-notifications-destination-ios-sdk", from: "0.0.1")
]
Installation - SDK initialisieren
Führen Sie die folgenden Schritte aus, um iOS-Anwendungen für den Empfang von Benachrichtigungen zu aktivieren.
-
Fügen Sie die
import
-Anweisungen in Ihrer Datei.swift
hinzu.import ENPushDestination
-
SDK für ENPushDestination initialisieren
let instanceGUID = "<instance_guid>>"; let destinationID = "<instance_destination_id>"; let apiKey = "<instance_apikey>"; let enPush = ENPush.sharedInstance enPush.setCloudRegion(region: .usSouth) enPush.initialize(instanceGUID, destinationID, apiKey)
region
: Region der Event Notifications-Instanz. Beispiel:Region.usSouth
.
Für Benachrichtigungen registrieren
Verwenden Sie die API " ENPush.registerDevice()
, um das Gerät mit dem iOS im Dienst Event Notifications zu registrieren.
Die folgenden Optionen werden unterstützt:
-
Ohne Benutzer-ID registrieren:
/**Register iOS devices*/ enPush.registerWithDeviceToken(deviceToken: "<apns-device-token>") { response, statusCode, error in print(response?.id ?? "") }
-
Registrierung mit Benutzer-ID. Für die auf "
userId
basierende Meldung akzeptiert die Registrierungsmethode einen weiteren Parameter - "userId
./**Register iOS devices*/ enPush.registerWithDeviceToken(deviceToken: "<apns-device-token>", withUserId: "userId") { response, statusCode, error in print(response?.id ?? "") }
Der "
userId
wird verwendet, um den eindeutigen "userId
für die Registrierung für Event Notifications zu übergeben.
Registrierung von Benachrichtigungen aufheben
Verwenden Sie die folgenden Codeschnipsel, um die Registrierung von Event Notifications aufzuheben.
enPush.unregisterDevice { response, statusCode, error in
/**.....*/
}
Zum Aufheben der Registrierung bei der UserId
-basierten Registrierung müssen Sie die Registrierungsmethode aufrufen. Siehe Register without userId option
im Abschnitt Für Benachrichtigungen registrieren.
Subskriptionen für Event Notifications-Zieltags
Push-Benachrichtigungen in iOS-Geräten empfangen
Um Push-Benachrichtigungen auf iOS zu erhalten, fügen Sie die folgende Swift in den " appDelegate.swift
Ihrer Anwendung ein:
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
//UserInfo dictionary will contain data sent from the server
}
Benachrichtigungsoptionen
Die folgenden Benachrichtigungsoptionen werden unterstützt:
Interaktive Benachrichtigungen
- Zum Aktivieren interaktiver Push-Benachrichtigungen müssen die Parameter für Benachrichtigungsaktionen als Teil des Benachrichtigungsobjekts übergeben werden. Im Folgenden sehen Sie einen Beispielcode zum Aktivieren interaktiver Benachrichtigungen:
let actionOne = ENPushNotificationAction(identifierName: "FIRST", buttonTitle: "Accept", isAuthenticationRequired: false, defineActivationMode: .foreground)
let actionTwo = ENPushNotificationAction(identifierName: "SECOND", buttonTitle: "Reject", isAuthenticationRequired: false, defineActivationMode: .destructive)
let category = ENPushNotificationActionCategory(identifierName: "category", buttonActions: [actionOne, actionTwo])
let notificationOptions = ENPushClientOptions()
notificationOptions.setInteractiveNotificationCategories(categoryName: [category])
enPush.initialize(instanceGUID, destinationID, apiKey, notificationOptions)
-
Implementieren Sie die Callback-Methode in AppDelegate.swift:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { switch response.actionIdentifier { case "Accept": print("Clicked Accept") case "Reject": print("Clicked Reject") default: } completionHandler() }
Diese Callback-Methode wird aufgerufen, wenn der Benutzer auf die Aktionsschaltfläche klickt. Die Implementierung dieser Methode muss Aufgaben ausführen, die mit dem angegebenen Bezeichner verbunden sind, und den Block im Parameter completionHandler ausführen.
Angepasste Einheiten-ID für Registrierung hinzufügen
Verwenden Sie zum Senden von DeviceId
die Methode setDeviceId
der Klasse ENPushClientOptions
.
let options = ENPushClientOptions();
options.setDeviceId(deviceId: "YOUR_DEVICE_ID");
Denken Sie daran, die benutzerdefinierte DeviceId ' unique
für jedes Gerät beizubehalten.
Rich Media-Benachrichtigungen aktivieren
Rich-Media-Benachrichtigungen werden unter iOS 10 oder höher unterstützt. Implementieren Sie UNNotificationServiceExtension, um Rich Media-Benachrichtigungen zu empfangen. Die Erweiterung fängt die Rich-Media-Benachrichtigung ab und verarbeitet sie.
Fügen Sie in der Methode didReceive () Ihrer Serviceerweiterung den folgenden Code hinzu, um den Rich-Push-Benachrichtigungsinhalt abzurufen.
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
self.contentHandler = contentHandler
bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
ENPushRichPushNotificationOptions.didReceive(request, withContentHandler: contentHandler)
}
Benachrichtigungen an das iOS-Gerät senden
Verwenden Sie API zum Senden von Benachrichtigungen, um die Push-Benachrichtigung für das iOS-Gerät zu senden. Sie können das Knoten- oder Go-Administrator-SDK verwenden, anstatt die API direkt aufzurufen.

