0

Unsere iOS-App sollte Push-Benachrichtigung erhalten. Nach this Tutorial ich diese Methoden in Anwendung Delegaten implementiert:PHP: So senden Sie Push-Benachrichtigungen an Apple-Gerät

didRegisterForRemoteNotificationsWithDeviceToken

und

didFailToRegisterForRemoteNotificationsWithError

, die von didFinishLaunchingWithOptions genannt werden, und es scheint, dass das Gerät richtig in unserem MySQL-Dienst registriert ist. Außerdem habe ich gerade eine pem Sandbox-Zertifizierung erstellt, die ich zum Testen verwenden werde. Jetzt muss ich wissen, was ich im Backend in PHP machen soll. Welcher Code wird benötigt? Wir verwenden Zend Framework, also sollte ich function preparetosend_apple() in meinem Mapper und sendtoappleAction() in unserem Controller implementieren, aber ich weiß nicht, wo ich anfangen soll und wie ich es testen soll. Vielen Dank!

+1

http://framework.zend.com/manual/1.12/en/zend.mobile.push.apns.html –

+0

Danke Kumpel, ich werde auf einmal einen Blick! –

Antwort

0

Die erste Sache ist das Senden von Push-Benachrichtigungen direkt aus der Anwendung ist keine gute Idee, da dieser Anruf eine blockieren kann (bedeutet der Rest des Codeblocks wird auf seinen Abschluss warten). Daher schlage ich vor, Hintergrundprozessor-/Nachrichtenwarteschlangen-Dienste zu verwenden (wie zB gearman, zero mq usw.).

Zweitens einfachste Lösung wird wie Dienste verwenden. Parse ermöglicht die Registrierung der App mit den von Ihnen erwähnten Zertifikaten und verfügt über SDK für PHP (Composer-basiert).

Im Hintergrund-Service rufen Sie einfach die API von SDK. Wie:

use Parse\ParseClient; 
use Parse\ParseInstallation; 
use Parse\ParsePush; 

ParseClient::initialize($appId, $restKey, $masterKey, $curlDebug); 
... 
... 
... 

Mit Kanal in Parse

$response = ParsePush::send(array(
          "channels" => ["channel-$userId"], 
          "data"  => $data, 
          )); 

OR mit benutzerdefinierter Abfrage

$query = ParseInstallation::query(); 
$query->equalTo('userId', "user-$userId"); 

$response = ParsePush::send(array(
          "where" => $query, 
          "data" => $data, 
          )); 

Der beste Teil der Parse mit - ich werde wie mit anderen interessanten Features sagen - Broadcast-Nachrichten , Gerätelisten usw.

Hoffe, dass dies Ihnen helfen kann.