web-dev-qa-db-fra.com

Implémentation des notifications push pour iOS (côté serveur)

Nous voulons pouvoir envoyer des messages texte simples à TOUS nos utilisateurs d'iphone. Pour cela, nous devons évidemment créer un code côté serveur qui stocke les jetons de périphérique et envoie les messages chaque fois que nécessaire. Y at-il un bon exemple à faire cela? (En parlant du code serveur)

Merci

39
Alex1987

Consultez easyAPNS si vous souhaitez l'héberger vous-même ou visiter Urban Airship si vous êtes d'accord avec un service d'hébergement (ils disposent d'une documentation complète).

Un autre bon site pour info est le site de Ray Wenderlich qui héberge un tutoriel en 2 parties: 

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

Je recommande également d’utiliser un service externe pour cela, comme Urban Airship ou PushApps . Je suis plus familier avec le dernier, et je peux vous dire que, outre les messages de notification "classiques", vous recevez également des messages en segmentation, localisation ou même notification de planification. Cela n’apparaît peut-être pas critique pour vous au début, mais au fur et à mesure que votre base d’utilisateurs grandit, vous verrez à quel point ces fonctionnalités sont importantes.

0
Asaf