Apple hat 2014 sein CloudKit-Framework neben iOS 8 eingeführt. Das Hauptziel war, als Onlinedatenbank für iOS-Anwendungen zu fungieren. CloudKit bietet jedoch viele weitere Funktionen, einschließlich Push-Benachrichtigungen.
In diesem Lernprogramm werde ich Ihnen zeigen, wie Sie mit dem CloudKit-Framework Push-Benachrichtigungen für Ihre iOS-Apps implementieren. Wenn Sie mehr über die anderen Funktionen von CloudKit erfahren möchten, lesen Sie mein Tutorial zu den Grundlagen des Frameworks:
In diesem Lernprogramm müssen Sie mindestens Xcode 8 mit Swift 3 verwenden. Außerdem benötigen Sie ein physisches iOS-Gerät und ein Apple-Entwicklerkonto, damit Sie CloudKit für Ihre Anwendung aktivieren können.
Zunächst werden die Vorteile (und Nachteile) der Verwendung von CloudKit für die Push-Benachrichtigungen Ihrer App beschrieben.
Wie Sie in diesem Lernprogramm sehen werden, müssen Sie sich beim Einrichten von Push-Benachrichtigungen mit CloudKit nicht wie bei anderen Cloud-Services um die Erstellung von Zertifikaten und Bereitstellungsprofilen kümmern. Da alles von Apple gemacht wird, müssen Sie nur CloudKit für Ihre App aktivieren, und der Rest funktioniert einfach.
Für einige Entwickler ist das Beste an CloudKit, wie viel Sie kostenlos bekommen. Es gibt viele andere Backend-as-a-Service-Unternehmen (BaaS), die Push-Benachrichtigungen für iOS-Apps anbieten. Die meisten davon haben jedoch eine Beschränkung, wie viele Benachrichtigungen kostenlos gesendet werden können. Mit CloudKit ist die Anzahl der Push-Benachrichtigungen, die Sie an Ihre Benutzer senden können, unbegrenzt. Die kostenlose Nutzung von CloudKit begrenzt jedoch den Datenspeicher, die Datenübertragung und die Anzahl der Benutzeranforderungen pro Sekunde.
Ein weiterer Vorteil der Verwendung von CloudKit in Ihren Apps ist, dass die Stabilität und Wartung des Netzwerks durch Apple sichergestellt wird. Apple-Serviceausfälle treten sehr selten auf und werden umgehend behoben. Dies bedeutet, dass Sie sich darauf verlassen können, dass CloudKit für Ihre Benutzer immer ordnungsgemäß funktioniert.
Ein Nachteil, den Sie bei der Verwendung von CloudKit beachten sollten, ist, dass es derzeit nicht auf anderen Plattformen als Apple verfügbar ist. Das bedeutet, dass CloudKit nicht funktioniert, wenn Sie eine Android-Version Ihrer App erstellen möchten. Für eine plattformübergreifende Lösung würde ich einen anderen BaaS wie back4app (build auf Parse) empfehlen, wie ich in diesem Tutorial bespreche:
Erstellen Sie zunächst ein neues Projekt in Xcode aus der iOS> Anwendung> Einzelansicht Vorlage.
Nachdem Xcode Ihr Projekt erstellt hat, gehen Sie zu Projektnavigator und klicken Sie auf die Fähigkeiten Tab. Klicken Sie in diesem Bildschirm auf den zu aktivierenden Schalter iCloud und aktivieren Sie dann die CloudKit Ankreuzfeld:
Nachdem Sie CloudKit aktiviert haben, können Sie jetzt zum CloudKit-Dashboard für Ihre App wechseln.
Um Push-Benachrichtigungen an die Benutzer unserer App zu senden, erstellen wir eine GlobalNotification Datensatztyp, der alle Benutzer benachrichtigt, wenn ein neuer Datensatz dieses Typs erstellt wird. Wenn die Aufnahmetyp Der Abschnitt des CloudKit-Dashboards ist nach dem Einloggen für Sie nicht bereits geöffnet. Klicken Sie in der Seitenleiste darauf.
Um einen neuen Datensatztyp zu erstellen, klicken Sie auf +Schaltfläche oben auf dem Bildschirm. Füllen Sie das Menü wie im folgenden Screenshot gezeigt aus:
Für dieses Tutorial fügen wir nur eine Single hinzu Inhalt Feld für den Datensatztyp, aber für Ihre eigenen Anwendungen können Sie beliebig viele hinzufügen.
Wenn Sie fertig sind, klicken Sie auf die Schaltfläche sparen Schaltfläche in der rechten unteren Ecke.
Zurück in Xcode, öffnen Sie Ihr AppDelegate.swift Datei und fügen Sie die folgenden Importanweisungen oben in Ihren Code ein:
Importieren von CloudKit Importieren von UserNotifications
Dieser Code importiert nur die CloudKit- und UserNotifications-Frameworks. Wir werden die UserNotifications verwenden, um sowohl Benachrichtigungsberechtigungen als auch eingehende Benachrichtigungen zu verwalten. Wenn Sie mehr über dieses Framework erfahren möchten, können Sie mein Tutorial hier lesen:
Bearbeiten Sie als Nächstes Ihre AppDelegate
Klassendefinition, um es an die anzupassen UNUserNotificationCenterDelegate
Protokoll:
Klasse AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate …
Jetzt müssen wir die Erlaubnis anfordern, um Benachrichtigungen anzuzeigen. Ersetzen Sie dazu Ihr Anwendung (_: didFinishLaunchingWithOptions :)
Methode mit der folgenden:
func application (_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool UNUserNotificationCenter.current (). delegate = selbst UNUserNotificationCenter.current (c) ], completionHandler: authorisiert, Fehler in if application.registerForRemoteNotifications ()) gibt true zurück.
Mit diesem Code bitten wir den Benutzer um Erlaubnis, Benachrichtigungen anzuzeigen, und wenn er damit einverstanden ist, registrieren Sie die App für Push-Benachrichtigungen.
Jetzt müssen wir das implementieren Anwendung (_: didRegisterForRemoteNotificationsWithDeviceToken :)
Methode. Fügen Sie folgenden Code hinzu AppDelegate
Klasse:
func application (_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) letsubscription = CKQuerySubscription (recordType: "GlobalNotification"), Prädikat: NSPredicate (Format: "TRUEPREDICATE"), Optionen: = "Eine neue Benachrichtigung wurde gepostet!" info.shouldBadge = true info.soundName = "default" Subscribe.notificationInfo = info CKContainer.default (). publicCloudDatabase.save (Abonnement, completionHandler: Subskription, Fehler in if error == nil // Subscription wurde erfolgreich gespeichert // Ein Fehler ist aufgetreten )
Mit diesem Code erstellen wir zuerst eine CKQuerySubscription
Objekt. Dieses Subskriptionsobjekt teilt CloudKit mit, wofür es Benachrichtigungen senden soll. Bei der Initialisierung dieses Abonnements schließen wir Folgendes ein:
Als nächstes erstellen wir eine CKNotificationInfo
versorgen Sie es mit etwas Inhalt und weisen Sie es dann dem Abonnementobjekt zu. Das CKNotificationInfo
Mit diesem Objekt formatieren Sie die Push-Benachrichtigung, die an Ihre Benutzer gesendet wird. In diesem Beispiel konfigurieren wir es mit den folgenden Eigenschaften:
alertBody
von "Eine neue Benachrichtigung wurde veröffentlicht!"
sollteBadge
Wert von wahr
. Dies bewirkt, dass das App-Symbol auf dem Startbildschirm seine Nummer für jede eingehende Benachrichtigung erhöht.soundName
von "Standard"
. Dadurch wird nur der standardmäßige iOS-Benachrichtigungston für Ihre App verwendet. Wenn Sie einen benutzerdefinierten Sound verwenden möchten, müssen Sie den Namen Ihrer Sounddatei verwenden.gewünschte Tasten
Array mit einem einzelnen Wert. Für jeden Schlüssel, den Sie in dieses Array aufnehmen, lädt CloudKit den entsprechenden Wert aus dem Datensatz, der die Benachrichtigung ausgelöst hat, und nimmt ihn in das Benutzerinformationswörterbuch der Benachrichtigung auf.Weiter unten weisen wir die Benachrichtigungsinformationen dem Abonnement zu, das für Ihre App in der öffentlichen CloudKit-Datenbank gespeichert wird.
Damit Sie die Benachrichtigung sehen können, während Ihre App ausgeführt wird, fügen Sie Ihrer AppDelegate-Klasse die folgende Methode hinzu:
func userNotificationCenter (_ center: UNUserNotificationCenter, willPresent-Benachrichtigung: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) completionHandler ([. alert, .sound]))]
In diesem Code wird das UserNotifications-Framework verwendet, um Ihre Benachrichtigung so anzuzeigen, als ob Ihre App überhaupt nicht ausgeführt wurde.
Bevor Sie Ihre App ausführen, müssen Sie überprüfen, ob Ihr Testgerät bei einem iCloud-Konto angemeldet ist die Einstellungen. Wenn nicht, müssen Sie dies tun, da für die CloudKit-APIs der aktuelle Benutzer angemeldet sein muss.
Erstellen und starten Sie Ihre App mit Xcode und akzeptieren Sie die Anforderung Ihrer App, um Benachrichtigungen anzuzeigen. Wenn Sie dies getan haben, kehren Sie zum CloudKit-Dashboard für Ihre App zurück und klicken Sie auf Abonnementtypen in der linken Seitenleiste. Sie sollten ein neues Abonnement für sehen GlobalNotification Datensätze mit einem EINFÜGEN auslösen:
Jetzt müssen Sie nur noch eine Benachrichtigung senden! Klicken Sie im CloudKit-Dashboard auf Standardzone unter Öffentliche Daten in der linken Seitenleiste. Klicken Sie entweder auf die + Taste oder ein Neuer Eintrag ein neues erstellen GlobalNotification Aufzeichnung. Füllen Sie das aus Inhalt mit was auch immer du willst und klick sparen in der rechten unteren Ecke.
Nachdem Ihr Datensatz gespeichert wurde, sollte die Benachrichtigung sofort auf Ihrem Testgerät erscheinen:
Wie Sie gesehen haben, können Sie mithilfe von CloudKit Push-Benachrichtigungen für Ihre iOS-App problemlos implementieren. Das Setup ist sehr einfach, mit nur wenigen Schritten, und die bereitgestellten APIs ermöglichen alle Push-Benachrichtigungen, die Sie für Ihre Apps benötigen.
Bitte hinterlassen Sie wie immer Ihre Kommentare und Rückmeldungen im Kommentarbereich. Schauen Sie sich auch unsere anderen iOS-Kurse und -Tutorials an!