iOS APNS: Senden des Geräte-Tokens an den Provider im String-Format

8

Ich muss das APNS-Geräte-Token meiner iOS-App an meinen Provider senden, indem ich einen Service anrufe, der JSON-Daten in meiner Anfrage erwartet. Ich lese Apples Lokale und Push-Benachrichtigung Programmierungshandbuch und es sagt nur, dass die application:didRegisterForRemoteNotificationsWithDeviceToken: -Delegatenmethode das Geräte-Token als NSData übergibt und Sie sollten es an Ihren Provider übergeben, der in Binärdaten kodiert ist. Aber ich muss es in eine Zeichenfolge konvertieren, um eine JSON-Anfrage an meinen Provider senden zu können.

Ich habe auch mehrere damit zusammenhängende Beiträge gelesen, da es aussieht, als ob es ein übliches Szenario wäre, aber ich habe verschiedene Möglichkeiten gefunden, ein solches Geräte-Token in eine Zeichenfolge umzuwandeln, um es zu senden, und ich bin mir nicht sicher von ihnen sollte am besten geeignet sein. Was wäre der zuverlässigste Weg, damit umzugehen? Ich nehme an, dass mein Provider diese Zeichenfolge zurück in Aufruf APNS konvertieren muss, und ich muss dieses Token auch in der App speichern, um es sicher mit dem neuen Wert zu vergleichen, wenn ein neues Token generiert wird und application:didRegisterForRemoteNotificationsWithDeviceToken: aufgerufen wird sende das Token nur, wenn es sich geändert hat.

Danke

    
AppsDev 05.04.2014, 10:10
quelle

4 Antworten

10

Sie haben recht, dass Sie das Geräte-Token von NSData in NSString konvertieren müssen in der Lage sein, es mit einem JSON-Objekt zu senden. Aber welche Konvertierungsmethode wählen Sie vollständig? Ihnen oder den Anforderungen des Anbieters. Die gebräuchlichsten Methoden sind a hex string (siehe zum Beispiel Beste Art, NSData zu serialisieren in eine hexadeximale Zeichenfolge ) oder eine Base64 - Zeichenfolge (mit %Code%). Beide sind 100% "zuverlässig".

Auch sollten Sie das Geräte-Token immer an den Provider senden und nicht nur, wenn es sich geändert hat. Der Anbieter muss eine Datenbank aller Geräte-Token mit einem Zeitstempel von wenn es zuletzt gesendet wurde, um den Zeitstempel mit einer möglichen Antwort zu vergleichen aus dem "Feedback-Service".

    
Martin R 05.04.2014, 10:41
quelle
8

In der Methode didFinishLaunchingWithOptions

%Vor%

Fügen Sie nach den obigen Codezeilen die folgende Methode hinzu

%Vor%

Nach den oben aufgeführten Schritten können Sie diese Delegatfunktion verwenden, um die Push-Benachrichtigung abzurufen und zu verarbeiten, sobald sie kommt. Die unten angefügte Methode löst entweder die App im Hintergrund aus oder nicht. Die unten angegebene Methode ist in ios7.0 verfügbar

%Vor%     
Rahul K Rajan 03.11.2014 08:03
quelle
5
%Vor%

Konvertieren von Daten in Bytes bedeutet, dass wir sie zählen können. Entfernen von Leerzeichen und & lt; & gt; ist wirklich keine gute Idee

    
Gautam Jain 16.03.2015 11:39
quelle
0
___ qstnhdr ___ iOS APNS: Senden des Geräte-Tokens an den Provider im String-Format ___ answer26710057 ___

In der Methode didFinishLaunchingWithOptions

%Vor%

Fügen Sie nach den obigen Codezeilen die folgende Methode hinzu

%Vor%

Nach den oben aufgeführten Schritten können Sie diese Delegatfunktion verwenden, um die Push-Benachrichtigung abzurufen und zu verarbeiten, sobald sie kommt. Die unten angefügte Methode löst entweder die App im Hintergrund aus oder nicht. Die unten angegebene Methode ist in ios7.0 verfügbar

%Vor%     
___ answer22879775 ___

Sie haben recht, dass Sie das Geräte-Token von %code% in %code% konvertieren müssen in der Lage sein, es mit einem JSON-Objekt zu senden. Aber welche Konvertierungsmethode wählen Sie vollständig? Ihnen oder den Anforderungen des Anbieters. Die gebräuchlichsten Methoden sind a hex string (siehe zum Beispiel Beste Art, NSData zu serialisieren in eine hexadeximale Zeichenfolge ) oder eine Base64 - Zeichenfolge (mit %Code%). Beide sind 100% "zuverlässig".

Auch sollten Sie das Geräte-Token immer an den Provider senden und nicht nur, wenn es sich geändert hat. Der Anbieter muss eine Datenbank aller Geräte-Token mit einem Zeitstempel von wenn es zuletzt gesendet wurde, um den Zeitstempel mit einer möglichen Antwort zu vergleichen aus dem "Feedback-Service".

    
___ qstntxt ___

Ich muss das APNS-Geräte-Token meiner iOS-App an meinen Provider senden, indem ich einen Service anrufe, der JSON-Daten in meiner Anfrage erwartet. Ich lese Apples Lokale und Push-Benachrichtigung Programmierungshandbuch und es sagt nur, dass die %code% -Delegatenmethode das Geräte-Token als %code% übergibt und Sie sollten es an Ihren Provider übergeben, der in Binärdaten kodiert ist. Aber ich muss es in eine Zeichenfolge konvertieren, um eine JSON-Anfrage an meinen Provider senden zu können.

Ich habe auch mehrere damit zusammenhängende Beiträge gelesen, da es aussieht, als ob es ein übliches Szenario wäre, aber ich habe verschiedene Möglichkeiten gefunden, ein solches Geräte-Token in eine Zeichenfolge umzuwandeln, um es zu senden, und ich bin mir nicht sicher von ihnen sollte am besten geeignet sein. Was wäre der zuverlässigste Weg, damit umzugehen? Ich nehme an, dass mein Provider diese Zeichenfolge zurück in Aufruf APNS konvertieren muss, und ich muss dieses Token auch in der App speichern, um es sicher mit dem neuen Wert zu vergleichen, wenn ein neues Token generiert wird und %code% aufgerufen wird sende das Token nur, wenn es sich geändert hat.

Danke

    
___ tag123ios ___ iOS ist das mobile Betriebssystem, das auf dem Apple iPhone, iPod touch und iPad ausgeführt wird. Verwenden Sie dieses Tag [ios] für Fragen zur Programmierung auf der iOS-Plattform. Verwenden Sie die verwandten Tags [objective-c] und [swift] für Probleme, die für diese Programmiersprachen spezifisch sind. ___ tag123applepushnotifications ___ Der Apple Push Notification Service ist ein Service von Apple Inc., der zusammen mit iOS 3.0 gestartet wurde. APNS wird zusammen mit Mac OS X Lion Server verwendet, um Updatebenachrichtigungen an Clients zu senden, die sich über ein Konfigurationsprofil für den Empfang von Updates registriert haben Außerdem werden die Mail-, Kalender- und Kontaktdienste des Servers verwendet. Dies bedeutet, dass Geräte wie das iPhone und Anwendungen wie iCal auf dem Mac eine Benachrichtigung erhalten können ___ antwort22882581 ___
%Vor%

Das hat auf fast allen Web-Plattformen zuverlässig funktioniert.

    
___ tag123stringformatting ___ Bezieht sich allgemein auf eine Reihe von Methoden, um eine beliebige Anzahl verschiedener Datentypen in einer Zeichenkette anzuzeigen. ___ tag123devicetoken ___ Eine 32-Byte-Binärkennung (oft als HEX-Zeichenfolge mit 64 Zeichen dargestellt), die zum Identifizieren eines iOS-Geräts zum Senden von Apple Push-Benachrichtigungen verwendet wird. ___ answer29075908 ___
%Vor%

Konvertieren von Daten in Bytes bedeutet, dass wir sie zählen können. Entfernen von Leerzeichen und & lt; & gt; ist wirklich keine gute Idee

    
___
insanoid 05.04.2014 15:05
quelle