webentwicklung-frage-antwort-db.com.de

Implementieren von Push-Benachrichtigungen für iOS (Serverseite)

Wir möchten in der Lage sein, einfache SMS an ALLE unsere iPhone-Benutzer zu senden. Dazu müssen wir natürlich einen serverseitigen Code erstellen, der die Geräte-Token speichert und die Nachrichten bei Bedarf weiterleitet. Gibt es ein gutes Beispiel dafür? (Sprechen über den Servercode)

Vielen Dank

39
Alex1987

Werfen Sie einen Blick auf easyAPNS wenn Sie es selbst hosten möchten, oder besuchen Sie Urban Airship wenn Sie mit einem Hosting-Service in Ordnung sind (sie verfügen über eine umfangreiche Dokumentation)

Eine weitere gute Seite für Informationen ist die Website von Ray Wenderlich, die ein zweiteiliges Tutorial enthält: 

46
Frank
  // Push Notification code for IPHONE in PHP 
  $deviceToken = $users_rows['gcm_regid'];
    $passphrase = 'pass1234';
    $ctx = stream_context_create();
    stream_context_set_option($ctx, 'ssl', 'local_cert', 'DrinksterDevelopment.pem');
    stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);

    $fp = stream_socket_client(
        'ssl://gateway.sandbox.Push.Apple.com:2195', $err,
        $errstr, 120, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);

    if (!$fp)
        exit("Failed to connect: $err $errstr" . PHP_EOL);

    echo 'Connected to APNS' . PHP_EOL;

    $body['aps'] = array(
       // 'alert' => $_GET["message"].'#'.$_GET["type"].'#'.$_GET["deal_id"],
       'alert' => $_GET["message"],
        'sound' => 'default'
        );
    $body['other'] = $_GET["type"].'#'.$_GET["deal_id"];

    $payload = json_encode($body);
    $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;
    $result_iphone = fwrite($fp, $msg, strlen($msg));

    if (!$result_iphone)
        $msg_iphone = 'Message not delivered' . PHP_EOL;

    else
        $msg_iphone = 'Message successfully delivered' . PHP_EOL;

     mail('[email protected]', 'IOSPushMsgStatus', $msg_iphone);
     fclose($fp);
    } //if($users_rows['Platform'] == 'Web' OR $users_rows['Platform'] == 'Android')
16
Abhijit

Ich empfehle auch die Verwendung eines externen Dienstes wie Urban Airship oder PushApps . Ich bin mit dem letzten vertraut, und ich kann Ihnen sagen, dass Sie neben den "normalen" Push-Benachrichtigungen auch Nachrichten erhalten Segmentierung, Standort oder sogar Planungsbenachrichtigung. Es mag für Sie zunächst keine kritischen Funktionen sein, aber wenn Ihre Benutzerbasis wächst, werden Sie sehen, wie wichtig diese Funktionen sind.

0
Asaf