iOS
Send Push Notifications
Push-Benachrichtigungen mit Cloud-Code und ObjC
26 min
push benachrichtigungen mit cloud code in objective c senden einführung in diesem abschnitt wird erklärt, wie sie push benachrichtigungen über cloud code mit back4app senden können so wird es aussehen zu jeder zeit können sie das vollständige projekt, das mit diesem tutorial erstellt wurde, in unserem github repository aufrufen um dieses schnellstart tutorial abzuschließen, benötigen sie xcode eine app, die bei back4app erstellt wurde befolgen sie das tutorial für neue parse apps um zu lernen, wie man eine parse app bei back4app erstellt eine ios app, die mit back4app verbunden ist hinweis befolgen sie das tutorial zur installation des parse sdk (swift) um ein xcode projekt zu erstellen, das mit back4app verbunden ist eine ios app, die über back4app push benachrichtigungen über das dashboard tutorial eingerichtet ist ein ios gerät, iphone oder ipad, das ios 10 oder neuer ausführt ein kostenpflichtiges apple entwicklerkonto 1 richten sie ihre ios app ein, um push benachrichtigungen zu empfangen jede parse anwendung, die auf einem für push benachrichtigungen registrierten gerät installiert ist, hat ein zugehöriges installation installation objekt das installation installation objekt ist der ort, an dem sie alle daten speichern, die benötigt werden, um push benachrichtigungen zu zielen zum beispiel könnten sie in ihrer app speichern, für welche teams einer ihrer benutzer interessiert ist, um updates über deren leistung zu senden das speichern des installation installation objekts ist auch erforderlich, um pushbezogene app öffnungsereignisse zu verfolgen der einfachste weg, um mit dem senden von benachrichtigungen zu beginnen, ist die verwendung von kanälen dies ermöglicht es ihnen, ein publisher subscriber modell für das senden von push benachrichtigungen zu verwenden geräte beginnen damit, sich für einen oder mehrere kanäle anzumelden, und benachrichtigungen können später an diese abonnenten gesendet werden die kanäle, für die sich eine gegebene installation installation angemeldet hat, werden im channels channels feld des installation installation objekts gespeichert danach werden wir uns mit dem versenden gezielter push benachrichtigungen an einen einzelnen benutzer oder an eine gruppe von benutzern basierend auf einer abfrage befassen in zukunft gehen wir davon aus, dass sie alle schritte des back4app push notifications über das dashboard tutorial , auch wenn sie das ios projekt verwenden, das mit diesem tutorial verfügbar ist, das sich in unserem github repository sie sollten grundlegende push benachrichtigungen zum laufen gebracht haben und auch in der lage sein, push benachrichtigungen über die administrationskonsole zu versenden 2 abonnieren sie ihr gerät für den nachrichtenkanal zuerst fügen wir ihrem installationsobjekt einen kanal hinzu wir werden dies tun, indem wir die methode createinstallationonparse in unserer app delegate datei ändern öffnen sie die datei appdelegate m ihres projekts und stellen sie sicher, dass ihre version von didregisterforremotenotificationswithdevicetoken mit dem untenstehenden code übereinstimmt wir fügen eine neue codezeile hinzu ‘\[currentinstallation setobject @\[@”news1”] forkey @”channels”];’ die das kanal array des installationsobjekts auf einen kanal namens ‘news’ setzt dies ermöglicht es uns, eine nachricht an alle zu senden, die sich über cloud code für den kanal namens ‘news’ anmelden appdelegate m 2\ testen sie es, indem sie ihre app auf einem physischen gerät ausführen sie können dies nicht im simulator ausführen sie benötigen ein tatsächliches push token, um ihren installationsdatensatz zu aktualisieren, daher ist ein physisches gerät ein muss nachdem es erfolgreich ausgeführt wurde, sollten sie dies im installationsbereich ihres dashboards sehen sie können überprüfen, indem sie zu back4app website gehen und auf das dashboard ihrer app klicken und dann die installationstabelle überprüfen in der spalte kanäle sollten sie 'news' sehen, was ihnen zeigt, dass sie jetzt für den news push kanal abonniert sind 3 erstellen sie ihren cloud code um mehr darüber zu erfahren, wie sie mit cloud code beginnen können, schauen sie sich cloud code für ios tutorial an erstellen sie eine js js datei, um ihren cloud code zu speichern sie müssen sie main js main js nennen, damit back4app weiß, dass dies der ort ist, an dem sie ihren cloud code speichern definieren sie eine cloud funktion mit parse cloud define parse cloud define , um die push benachrichtigung aufzurufen innerhalb der funktion werden wir parse push send parse push send aufrufen, um push benachrichtigungen an den ‚news‘ kanal zu senden es ist erforderlich, den master schlüssel in diesem vorgang zu verwenden der folgende code führt diese schritte aus parse server 3 x // main js 1 parse cloud define("pushsample", (request) => { 2 3 return parse push send({ 4 channels \["news"], 5 data { 6 title "hello from the cloud code", 7 alert "back4app rocks!", 8 } 9 }, { usemasterkey true }); 10 }); parse server 2 x //main js 1 parse cloud define("pushsample", function (request, response) { 2 parse push send({ 3 channels \["news"], 4 data { 5 title "hello from the cloud code", 6 alert "back4app rocks!", 7 } 8 }, { 9 success function () { 10 // push was successful 11 response success("push sent"); 12 console log("success push sent"); 13 }, 14 error function (error) { 15 // push was unsucessful 16 response error("error with push " + error); 17 console log("error " + error); 18 }, 19 usemasterkey true 20 }); 21 }) 4 hochladen zum cloud code gehe zu deiner app bei back4app website und klicke auf dashboard dashboard finde den cloud code cloud code und klicke auf functions & web hosting functions & web hosting es sieht so aus 3\ lade eine neue datei hoch oder erstelle eine neue datei (du kannst auch die aktuelle main js main js datei direkt im browser bearbeiten) klicke dann auf deploy deploy wie hier gezeigt 5 rufe cloud code von deiner ios app auf als nächstes werden wir etwas code schreiben, um diese cloud funktion von ihrer app aus aufzurufen sie benötigen sowohl den simulator als auch ein physisches gerät, um diese aufgabe abzuschließen sie werden die cloud funktion von ihrer app im simulator aus aufrufen und sie werden die push benachrichtigung auf ihrem physischen gerät sehen ihr physisches gerät sollte tatsächlich mit dem sperrbildschirm geschlossen sein, um die push benachrichtigung zu sehen eine push benachrichtigung wird nicht auf dem bildschirm angezeigt, wenn sie sich in der app befinden, die sie sendet, wenn sie die push benachrichtigung erhalten öffnen sie die viewcontroller m datei ihres projekts wir müssen parse im view controller einfügen, indem wir den folgenden code ‘#import \<parse/parse h>’ an den anfang der datei hinzufügen viewcontroller 3\ als nächstes werden wir in der viewcontroller m datei eine alarmfunktion aus der viewdidappear methode aufrufen der alarm ermöglicht es ihnen, den cloud code auszulösen, der eine push benachrichtigung an ihr gerät sendet stellen sie sicher, dass sie den folgenden codeblock nach der viewdidload funktion einfügen viewcontroller m 4\ führen sie ihre app im simulator aus, und wenn die aufforderung zum senden der push benachrichtigung erscheint, drücken sie „ok“ auf ihrem physischen gerät sollten sie die push benachrichtigung auf dem sperrbildschirm sehen 6 cloud code über die rest api aufrufen die rest api bietet eine schnelle und einfache möglichkeit, um zu testen, ob ihre cloud funktion funktioniert verwenden sie einfach den folgenden code in ihrem terminal oder eingabeaufforderung klicken sie hier, um mehr darüber zu erfahren, wie sie mit der befehlszeile in linux , macos oder windows um die push benachrichtigungen zu testen, verwenden sie einfach den rest code, während das gerät geschlossen ist 7 zielgerichtete push benachrichtigungen mit einem benutzerobjekt senden in zukunft werden wir ein anderes ios projekt verwenden, das bereits grundlegende anmelde und registrierungsfunktionen enthält wir werden dieses ios projekt verwenden, um ihnen zu zeigen, wie sie erkennen können, ob ein benutzer angemeldet ist, und falls ja, seine installation mit einem link zu seiner objekt id für abfragen im cloud code speichern sie können das vollständige ios projekt, das mit dem tutorial dieses abschnitts erstellt wurde, in unserem github repository herunterladen, aber sie müssen immer noch alle einrichtungsschritte aus dem vorherigen tutorial durchführen, das erklärt, wie man push benachrichtigungen vom back4app dashboard sendet holen sie sich die neue version der app, richten sie sie ein und melden sie sich bei der app an oder registrieren sie sich stellen sie zunächst sicher, dass sie die funktionierende vorlage von github unter github repository wir werden nicht alle schritte zum erstellen dieser app durchgehen, sondern uns auf die einrichtung des cloud codes und dessen funktionsweise konzentrieren sobald sie diese neue app öffnen, stellen sie sicher, dass sie die anmeldeinformationen ihrer eigenen app in die datei appdelegate m einfügen appdelegate m 2\ diese app weist einige wesentliche unterschiede zur vorherigen app auf sie verfügt über 2 abschnitte, einen für die anmeldung in ihrer app und einen abschnitt, wenn sie nicht in ihrer app angemeldet sind die nächste große änderung ist die funktion ‚didregisterforremotenotificationswithdevicetoken‘ in der datei appdelegate m wir haben eine zeile hinzugefügt, die die objekt id des benutzers als teil des installationsobjekts speichert so können wir wissen, welcher benutzer mit welchem installationsobjekt verknüpft ist und sie individuell für push benachrichtigungen ansprechen appdelegate m 3\ da wir jetzt die objekt id des benutzers als teil des installationsobjekts speichern, möchten wir kein neues push token anfordern, bis der benutzer angemeldet ist wir möchten kein token direkt aus der funktion ‚application didfinishlaunchingwithoptions‘ der datei appdelegate m anfordern, sondern wir möchten es aus der funktion ‚viewdidappear‘ des loggedinviewcontroller aufrufen in ‚viewdidappear‘ rufen wir eine funktion im appdelegate auf, um zugriff auf ein push benachrichtigungstoken von apple anzufordern da sie diesen abschnitt nur sehen können, wenn sie angemeldet sind, können wir davon ausgehen, dass der benutzer angemeldet ist, wenn wir das installationsobjekt erstellen und die objekt id abrufen loggedinviewcontroller appdelegate m 4\ ok, jetzt um sich anzumelden oder einzuloggen auf deinem physischen gerät (iphone oder ipad) starte die app du solltest das bild unten sehen du solltest dich registrieren, um einen neuen benutzer zu erstellen, oder dich anmelden, wenn du bereits einen benutzer in deiner app erstellt hast so wird es aussehen du solltest jetzt in der lage sein, den loggedinviewcontroller zu sehen es sollte so aussehen wenn sie versuchen, benachrichtigungen an sich selbst zu senden, wird es noch nicht funktionieren, da wir diese methoden nicht zum cloud code hinzugefügt haben das werden wir als nächstes tun 8 fügen sie die gezielten push methoden zum cloud code hinzu öffnen sie ihre main js datei, die sie zuvor erstellt haben, und fügen sie die folgenden funktionen hinzu, um installationen nach benutzer id zu zielen es ist erforderlich, den master schlüssel in diesem vorgang zu verwenden der folgende code führt diese schritte aus parse server 3 x // main js 1 parse cloud define('sendpushtoyourself', (request) => { 2 let userid = request user id; 3 4 let query = new parse query(parse installation); 5 query equalto("userid", userid); 6 query descending("updatedat"); 7 return parse push send({ 8 where query, 9 data { 10 title "hello from the cloud code", 11 alert "back4app rocks! single message!", 12 } 13 }, { usemasterkey true }); 14 }); 15 16 parse cloud define('sendpushtoallusers', (request) => { 17 let currentuser = request user; 18 let userids = \[currentuser id]; 19 20 let query = new parse query(parse installation); 21 query containedin('userid', userids); 22 return parse push send({ 23 where query, 24 data { 25 title "hello from the cloud code", 26 alert "back4app rocks! group message!", 27 } 28 }, { usemasterkey true }); 29 }); parse server 2 x //main js 1 parse cloud define('sendpushtoyourself', function (request, response) { 2 var currentuser = request user; 3 var userid = currentuser id; 4 5 var query = new parse query("installation"); 6 query equalto("userid", userid); 7 query descending("updatedat"); 8 parse push send({ 9 where query, 10 data { 11 title "hello from the cloud code", 12 alert "back4app rocks! single message!", 13 } 14 }, { 15 usemasterkey true, 16 success function () { 17 response success("success sending a single push!"); 18 }, 19 error function (error) { 20 response error(error code + " " + error description); 21 } 22 }); 23 }); 24 25 parse cloud define('sendpushtoallusers', function (request, response) { 26 var currentuser = request user; 27 var userids = \[currentuser id]; 28 29 var query = new parse query(parse installation); 30 query containedin('userid', userids); 31 parse push send({ 32 where query, 33 data { 34 title "hello from the cloud code", 35 alert "back4app rocks! group message!", 36 } 37 }, { 38 usemasterkey true, 39 success function () { 40 response success('success sending a group push!'); 41 }, 42 error function (message) { 43 response error(error code + " " + error description); 44 } 45 }); 46 }); 9 hochladen zum cloud code gehe zu deiner app unter back4app website und klicke auf dashboard dashboard finde den cloud code cloud code und klicke auf funktionen & webhosting funktionen & webhosting es sieht so aus 3\ laden sie eine neue datei hoch oder erstellen sie eine neue datei (sie können auch die aktuelle main js main js datei direkt im browser) klicken sie dann auf bereitstellen bereitstellen wie hier gezeigt 10 testen sie, ob sie gezielte push benachrichtigungen an sich selbst senden können öffnen sie ihre app im simulator, während sie ihr physisches gerät mit dem sperrbildschirm geschlossen lassen sie können testen, ob beide push funktionen funktionieren, indem sie die schaltfläche „push an sich selbst senden“ und die schaltfläche „push an eine gruppe von personen senden“ drücken sie sollten die push benachrichtigungen auf dem sperrbildschirm ihres geräts sehen abschließende gedanken damit endet das tutorial sie sollten ein festes verständnis dafür haben, wie man push benachrichtigungen basierend auf dem kanal eines benutzers oder der objekt id eines benutzers oder einer anderen abfrage sendet, die das abrufen der objekt id des benutzers beinhaltet denken sie daran, dass sie die objekt id des benutzers speichern müssen, indem sie sie zur push installation hinzufügen und nur dann ein push token anfordern, wenn der benutzer angemeldet ist beim senden von push benachrichtigungen über abfragen sollten sie beachten, dass dies standardmäßig auf 100 ergebnisse begrenzt ist und einige benutzer mehr als eine installationsobjekt haben können es wird auch nicht empfohlen, push benachrichtigungen an arrays von installationsobjekten zu senden, die größer als 100 ergebnisse sind dies könnte dazu führen, dass einige push benachrichtigungen nicht gesendet werden wenn sie es mit großen gruppen von personen zu tun haben, ist es besser, kanäle zu verwenden oder die push benachrichtigungen in wiederholten anfragen zu senden es ist erledigt! in diesem stadium können sie push benachrichtigungen über cloud code über back4app senden! herzlichen glückwunsch!