Einrichten von Push-Benachrichtigungen unter iOS

Einführung

Apple hat ursprünglich Push-Benachrichtigungen eingeführt, damit Anwendungen auf Ereignisse reagieren können, wenn die Anwendung nicht im Vordergrund ausgeführt wird. Das Betriebssystem und die iOS-Geräte haben sich jedoch in den letzten Jahren erheblich verändert, und Anwendungen müssen sich nicht nur auf Push-Benachrichtigungen verlassen, um Aufgaben im Hintergrund auszuführen.

Dies bedeutet jedoch nicht, dass Push-Benachrichtigungen nicht mehr nützlich sind. Push-Benachrichtigungen eignen sich hervorragend, um eine Anwendung über wichtige Ereignisse zu informieren und die Benutzer Ihrer Anwendung zu beschäftigen. Vergessen Sie auch nicht, dass eine Anwendung immer noch ohne Einschränkungen im Hintergrund ausgeführt werden darf. Mit anderen Worten ist der ursprüngliche Zweck von Push-Benachrichtigungen weiterhin gültig.

Selbst die erfahrensten iOS-Entwickler kratzen sich von Zeit zu Zeit, wenn sie sich mit der Anwendungsbereitstellung befassen müssen. Leider erhöhen Push-Benachrichtigungen diese Komplexität. Mit diesem Tutorial möchte ich Ihnen zeigen, dass das Einrichten von Push-Benachrichtigungen kein Alptraum sein sollte. Folgen Sie mir und ich verspreche Ihnen, dass Sie in kürzester Zeit Push-Benachrichtigungen senden werden.

Wenn Sie nach einer schnellen Lösung suchen, können Sie AZNotification: Notifications für iPhone im Envato Market ausprobieren. So können Sie schnell und einfach attraktive Benachrichtigungen erstellen. Die Benachrichtigungen werden von der Navigationsleiste gelöscht und können neben Informationen auch Fehlermeldungen anzeigen. Oder stellen Sie einen Envato Studio App-Entwickler ein, um Ihnen zu helfen.

AZNotification: Benachrichtigungen für iPhone 

1. Voraussetzungen

Sie benötigen zwei Dinge, wenn Sie mit mir folgen möchten. Das erste, was Sie benötigen, ist ein physisches Gerät, um Push-Benachrichtigungen zu erhalten, da der iOS-Simulator keine Push-Benachrichtigungen unterstützt. Das zweite, was Sie brauchen, ist ein kostenpflichtiger iOS-Entwicklerkonto. Nur kostenpflichtige Konten können Anwendungen zur Ausführung auf einem physischen Gerät bereitstellen.

2. Projekteinrichtung

Das Ziel dieses Lernprogramms ist das Erstellen einer Anwendung, die für den Empfang von Push-Benachrichtigungen eingerichtet ist. Öffnen Sie Xcode und erstellen Sie ein neues Projekt auf der Basis von Einzelansicht-Anwendung Vorlage.

Nennen Sie das Projekt drücken, Geben Sie eine Firmenkennung und ein Klassenpräfix ein, und legen Sie fest Geräte auf das iPhone.

3. Registrierung

Auch wenn ich nicht auf die äußerst wichtige Backend-Infrastruktur von Push-Benachrichtigungen eingehen möchte, ist es wichtig, dass Sie wissen und verstehen, was Ihre Anwendung tun muss, um Push-Benachrichtigungen zu erhalten und warum dies der Fall ist.

Öffnen TSPAppDelegate.m und aktualisieren Sie die Anwendung: didFinishLaunchingWithOptions: Wie nachfolgend dargestellt. Wir nennen registerForRemoteNotificationTypes: auf der Anwendung Übergeben Sie die Benachrichtigungstypen, an denen wir interessiert sind. Das Betriebssystem weiß jetzt, dass die Anwendung Push-Benachrichtigungen erhalten möchte.

- Anwendung (BOOL): (UIApplication *) Anwendung didFinishLaunchingWithOptions: (NSDictionary *) launchOptions // Für Remote-Benachrichtigungen registrieren JA zurückgeben; 

Das Betriebssystem kontaktiert die Server von Apple und erhält eine Geräte-Token um das Gerät eindeutig zu identifizieren, auf dem die Anwendung ausgeführt wird. Dieses Gerätetoken wird von Ihrer Serverinfrastruktur zum Senden von Push-Benachrichtigungen verwendet. Dazu wird das Gerätetoken zusammen mit der eigentlichen Push-Benachrichtigung an die Server von Apple gesendet. Die Server von Apple sind für die Verteilung der Push-Benachrichtigungen an die entsprechenden Geräte verantwortlich.

Beachten Sie, dass das Gerätetoken für jede Anwendung unterschiedlich ist und sich im Laufe der Zeit für dieselbe Anwendung ändern kann. Apple empfiehlt daher, bei jedem Start der Anwendung ein Geräte-Token anzufordern und das Geräte-Token an Ihr Backend zu senden, um sicherzustellen, dass das Geräte-Token auf dem neuesten Stand ist.

Wenn Sie einen Dienst wie Parse oder Urban Airship verwenden, müssen Sie sich keine Sorgen machen. In diesem Fall müssen Sie dem Backend nur das iOS-Gerät des iOS-Geräts senden.

Die Methoden, die Ihrer Anwendung mitteilen, ob die Registrierung für Remote-Benachrichtigungen erfolgreich ist oder nicht, sind Anwendung: didRegisterForRemoteNotificationsWithDeviceToken: und Anwendung: didFailToRegisterForRemoteNotificationsWithError: beziehungsweise. Implementieren Sie diese Methoden zunächst wie unten gezeigt.

- (void) application: (UIApplication *) application didRegisterForRemoteNotificationsWithDeviceToken: (NSData *) deviceToken NSLog (@ "Wurde für Remote-Benachrichtigungen mit Gerätetoken (% @ registriert)", deviceToken); 
- (void) application: (UIApplication *) application didFailToRegisterForRemoteNotificationsWithError: (NSError *) error NSLog (@ "Fehler bei der Registrierung für Remote-Benachrichtigungen"); NSLog (@ "% @,% @", Fehler, error.localizedDescription); 

Beide Methoden werden von der deklariert UIApplicationDelegate Protokoll. Dieses Protokoll legt auch eine andere Methode fest, Anwendung: didReceiveRemoteNotification:, wird aufgerufen, wenn die Anwendung eine Remote-Benachrichtigung erhält. Sie müssen alle eingehenden Push-Benachrichtigungen bearbeiten. Das Anwendung: didReceiveRemoteNotification: Methode übergibt Ihnen die Payload der Push-Benachrichtigung als NSDictionary Objekt. Ihre Anwendung muss entscheiden, wie sie auf die Push-Benachrichtigung reagieren soll.

Wenn Sie Ihre Anwendung ausführen, wird die Anwendung: didFailToRegisterForRemoteNotificationsWithError: Methode wird aufgerufen. Dies ist nicht überraschend, da wir unsere Anwendung für Push-Benachrichtigungen noch nicht abgeschlossen haben. Zur Erinnerung: Remote-Benachrichtigungen werden vom iOS-Simulator nicht unterstützt. Sie benötigen ein physisches Gerät, um dieses Tutorial abzuschließen.

4. SSL-Zertifikat

Um den nächsten Schritt abzuschließen, müssen Sie sich beim iOS Dev Center von Apple bei Ihrem iOS-Entwicklerkonto anmelden. Wählen Bezeichner von dem iOS Apps Abschnitte.

Klicken Sie oben rechts auf das Pluszeichen und geben Sie ein ein App-ID-Beschreibung. Dies hilft Ihnen, die App-ID später zu identifizieren.

Sie können das verlassen App-ID-Präfix wie es ist, aber die App-ID-Suffix muss auf gesetzt sein Explizite App-ID, anstatt Wildcard-App-ID. Wenn Sie möchten, dass eine Anwendung Remote-Benachrichtigungen erhält, müssen Sie eine Explizite App-ID, sowie com.tutsplus.push, anstatt com.tutsplus. *.

Im Bereich App Services, aktivieren Mitteilungen. Klicken Fortsetzen Klicken Sie auf, um das Formular zu senden einreichen um die App-ID zu erstellen.

Wählen Sie aus der Liste der App-IDs die gerade erstellte aus, und klicken Sie auf Bearbeiten Taste darunter. Scrollen Sie nach unten, bis Sie den Abschnitt mit Push-Benachrichtigungen sehen. Sie sollten zwei Schaltflächen sehen Zertifikat erstellen…  Wie nachfolgend dargestellt.

Wie bereits erwähnt, kommuniziert Ihr Backend mit den Servern von Apple, um Remote-Benachrichtigungen an Ihre Anwendung zu senden. Ihr Backend sendet Remote-Benachrichtigungen über die Server von Apple an Ihre Anwendung. Aus diesem Grund muss Apple wissen, dass nur Ihre Server eine Verbindung mit ihren Servern herstellen können. Sie möchten nicht, dass jemand anderes Remote-Benachrichtigungen an Ihre Anwendung sendet.

Daher muss Apple ein SSL-Zertifikat erstellen. Viele Entwickler schrecken vor den Worten "Zertifikate" und "Bereitstellung" zurück, aber das ist wirklich nicht so schwierig. Folgen Sie mit und Sie sind in weniger als zwei Minuten fertig.

Öffnen Zugriff auf den Schlüsselbund auf Ihrer Entwicklungsmaschine und wählen Sie Zertifikatsassistent> Zertifikat von einer Zertifizierungsstelle anfordern… von dem Zugriff auf den Schlüsselbund Speisekarte. Vergewissern Sie sich, dass kein Schlüssel ausgewählt ist Zugriff auf den Schlüsselbund wenn Sie diese Option auswählen.

Geben Sie eine E-Mail-Adresse ein und a Gemeinsamen Namen um das Zertifikat später zu identifizieren. Lassen Sie die CA-E-Mail Feld leer und wählen Auf der Festplatte gespeichert. Klicken Fortsetzen und speichern Sie die Zertifikat-Signaturanforderung auf Ihrer Festplatte.

Sie haben ein paar Dinge erstellt, indem Sie diesen Schritt abgeschlossen haben. Sie haben eine Zertifikatsignierungsanforderung sowie einen öffentlichen und einen privaten Schlüssel erstellt. Die Schlüssel sollten in sichtbar sein Zugriff auf den Schlüsselbund Wie nachfolgend dargestellt.

Gehen Sie zurück zum iOS Dev Center und klicken Sie auf Zertifikat erstellen… Knopf, den wir früher gesehen haben. Apple teilt Ihnen mit, welche Schritte Sie zum Erstellen der Zertifikatsignierungsanforderung durchführen müssen, aber wir haben diese bereits abgeschlossen. Klicken Fortsetzen, Laden Sie die Zertifikatsignierungsanforderung hoch, indem Sie auf klicken Datei wählen… und drücken Sie Generieren um das SSL-Zertifikat zu generieren.

Laden Sie das Zertifikat gemäß den Anweisungen von Apple herunter und doppelklicken Sie darauf, um es zu installieren Zugriff auf den Schlüsselbund. Überprüfen Sie nochmals, ob das Zertifikat hinzugefügt wurde Zugriff auf den Schlüsselbund und mit dem richtigen privaten Schlüssel verknüpft.

Der nächste Schritt, die Anwendungsbereitstellung, ist für viele Entwickler eine Herausforderung. Lass mich dich durchgehen.

5. Bereitstellung von Anwendungen

Bevor wir die Einrichtung von Push-Benachrichtigungen testen können, müssen wir ein Bereitstellungsprofil für unsere Anwendung erstellen. Wählen Sie im iOS Dev Center Entwicklung in dem Bereitstellungsprofile Sektion. Klicken Sie oben rechts auf das Pluszeichen und wählen Sie aus iOS App-Entwicklung unter dem Entwicklung Sektion.

Klicken Fortsetzen und wählen Sie Ihre App-ID aus der Liste aus. Wählen Sie die Zertifikate aus, die Sie in das Bereitstellungsprofil aufnehmen möchten, und klicken Sie auf Fortsetzen. Da wir ein Bereitstellungsprofil für die Entwicklung erstellen, müssen wir auch angeben, welche Geräte in das Bereitstellungsprofil aufgenommen werden müssen. Stellen Sie sicher, dass Ihr Testgerät enthalten ist. Geben Sie dem Bereitstellungsprofil einen sinnvollen Namen und klicken Sie auf Generieren.

Laden Sie das Bereitstellungsprofil herunter und ziehen Sie es in Xcode, um es hinzuzufügen. Aktualisieren Sie die Build-Einstellungen Ihres Ziels in Xcode, um das neue Bereitstellungsprofil zu verwenden. Erstellen Sie Ihre Anwendung, und führen Sie sie aus, um sicherzustellen, dass alles wie erwartet funktioniert.

Wenn Sie Probleme haben, überprüfen Sie noch einmal, ob die Bundle-ID Ihrer Anwendung mit der App-ID übereinstimmt. Beachten Sie, dass bei einer Bündelkennung die Groß- und Kleinschreibung beachtet wird.

Wenn Sie die in diesem Lernprogramm beschriebenen Schritte ausgeführt haben, sollte Ihre Anwendung Sie mit der folgenden Meldung auffordern.

Wenn Sie auf tippen OK, Ihre Anwendung fragt das Betriebssystem nach einem Gerätetoken. Wenn dies erfolgreich ist, wird die Anwendung: didRegisterForRemoteNotificationsWithDeviceToken: Methode der UIApplicationDelegate Das Protokoll wird aufgerufen, und Sie erhalten das Gerätetoken. Da wir dieser Methode eine Protokollanweisung hinzugefügt haben, sollte das Gerätetoken auch in Xcode an der Konsole protokolliert werden.

Push [2182: 60b] hat sich für Remote-Benachrichtigungen mit Geräte-Token registriert (<131cec1a 64cf8f4c 80009196 6157311d c774df92 056c74c2 e5538e52 db4848f1>)

6. Senden von Push-Benachrichtigungen

Um zu testen, ob von Ihnen gesendete Push-Benachrichtigungen ankommen, müssen Sie über ein Backend verfügen, an das Ihre Anwendung das Gerätetoken senden kann. Dieses Backend kann dann eine Verbindung mit den Servern von Apple herstellen, um Push-Benachrichtigungen zu senden.

Ich werde diesen Aspekt von Push-Benachrichtigungen in diesem Tutorial nicht behandeln, aber dies ist der einfache Teil von Push-Benachrichtigungen, insbesondere wenn Sie einen Dienst wie Parse oder Urban Airship verwenden.

Sie können auch Houston verwenden, einen von Mattt Thompson entwickelten Ruby-Edelstein, der das Senden von Push-Benachrichtigungen sehr einfach macht.

Fazit

Ich hoffe, dieses Tutorial hat Ihnen gezeigt, dass Push-Benachrichtigungen nicht so schwer einzurichten sind, wie die meisten Entwickler denken. Es ist wahr, dass es ein bisschen dauert, mit Schlüsseln und Zertifikaten zu spielen, aber sobald Sie die beweglichen Teile verstanden haben, ist es nicht so schwer zu verstehen und einzurichten.

Die Wahrheit ist, dass es schwierig ist, Schlüssel und Zertifikate zu erstellen. Die Handhabung von Push-Benachrichtigungen in Ihrer iOS-Anwendung ist sehr einfach und unkompliziert.