Реализация push-уведомлений для iOS (на стороне сервера) - PullRequest
39 голосов
/ 04 сентября 2011

Мы хотим иметь возможность отправлять простые текстовые сообщения ВСЕМ нашим пользователям iphone.Для этого нам, очевидно, нужно создать код на стороне сервера, который будет хранить токены устройства и при необходимости отправлять сообщения.Есть ли хороший пример этого?(Говоря о коде сервера)

Спасибо

Ответы [ 3 ]

46 голосов
/ 04 сентября 2011

Посмотрите easyAPNS , если вы хотите провести его самостоятельно, или посетите Urban Airship , если у вас все в порядке с услугой хостинга (у них есть обширный набор документации)

Другим хорошим сайтом для информации является сайт Рэя Вендерлиха, на котором размещено руководство из двух частей:

16 голосов
/ 20 октября 2013
  // 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('jackbrown00001@gmail.com', 'IOSPushMsgStatus', $msg_iphone);
     fclose($fp);
    } //if($users_rows['Platform'] == 'Web' OR $users_rows['Platform'] == 'Android')
0 голосов
/ 20 апреля 2014

Я также рекомендую использовать для этого внешний сервис, такой как Urban Airship или PushApps . Я более знаком с последним и могу сказать вам, что помимо «обычных» push-уведомлений вы также получаете сообщения по сегментации, местоположению или даже по расписанию. Поначалу это может показаться вам не очень важным, но по мере роста вашей пользовательской базы вы увидите, насколько важны эти функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...