Перейти к содержанию
Fire Monkey от А до Я
  • 0

Недоходят push до устройства


FeLDMARShaL

Вопрос

Все сертификаты были созданы, подгружены, на этапе создания/подгрузки ни каких ошибок не выскакивало. Приложение запускается на реальном устройстве в режиме отладки без проблем. Подписываюсь на push вот этим кодом:

    APushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.APS);
    AServiceConnection := TPushServiceConnection.Create(APushService);
    AServiceConnection.Active := True;
    AServiceConnection.OnChange := OnChange;
    AServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent;
    ADeviceID := APushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID];
    ADeviceToken := APushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];

ADeviceID - это ид устройства (не пустое), ADeviceToken - после того как кликнули на устрйостве разрешать уведомления, стало не пустым, т.е. тоже заполняется без проблемм.

 

Сгенерировал по мануалу для xCode сертификат (ck.pem), и пытаюсь через php отправить уведомление:

 

$deviceToken = 'b955e85038ec8c3bddec68ccde3d8a9e03a22f3d9383f43b40b074fdfc29c1ee';
$passphrase = '1234';
$message = 'A push notification has been sent!';

$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem'); 
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);

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

echo 'Connected to APNS' . PHP_EOL;

$body['aps'] = array(
'alert' => array(
        'body' => $message,
'action-loc-key' => 'Bango App',
    ),
    'badge' => 2,
'sound' => 'oven.caf',
);

$payload = json_encode($body);


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

if (!$result)
echo 'Message not delivered' . PHP_EOL;
else
echo 'Message successfully delivered' . PHP_EOL . $result;

fclose($fp);
Результат выполнения пхп скрипта: Connected to APNS Message successfully delivered 158

Т.е. на вид эпловцы приняли наш пуш, но до устройства этот пуш не доходит почемуто. В чем собака зарыта не пойму. Нужен совет бывалых так сказать :)

Изменено пользователем FeLDMARShaL
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Написал небольшую програмку в delphi по отправке push - все работает, значит проблема не в сертефикате, а в пхп либо настройках пхп. есть идеи?

п.с. а между делом, а как удалить красный кругляк с иОС иконке. NotificationCenter.CancelAll; - для андройда срабатывает, а для iOS нет

Изменено пользователем FeLDMARShaL
Ссылка на комментарий
  • 0

Разобрался в чем дело. Почемуто во всех мануалах к xCode надо слать запрос на

 

ssl:   //   gateway.push.apple.com:2195

а по факту у меня сработало на

 

ssl:   //   gateway.sandbox.push.apple.com:2195

:)

Изменено пользователем FeLDMARShaL
Ссылка на комментарий
  • 0

 

Все сертификаты были созданы, подгружены, на этапе создания/подгрузки ни каких ошибок не выскакивало. Приложение запускается на реальном устройстве в режиме отладки без проблем. Подписываюсь на push вот этим кодом:

    APushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.APS);
    AServiceConnection := TPushServiceConnection.Create(APushService);
    AServiceConnection.Active := True;
    AServiceConnection.OnChange := OnChange;
    AServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent;
    ADeviceID := APushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID];
    ADeviceToken := APushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];

ADeviceID - это ид устройства (не пустое), ADeviceToken - после того как кликнули на устрйостве разрешать уведомления, стало не пустым, т.е. тоже заполняется без проблемм.

 

FeLDMARShaL прошу помощи, у меня этот код не работает в XE8, вылетает по access violation... начиная со строки ADeviceID := ...

вот мой пост по ошибке

http://fire-monkey.ru/topic/1697-push-soobscheniia-ios-kak-poluchit-token/?hl=push

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...