У меня небольшая проблема с уведомлением push и iOs 10 (с Swift 3) ..
Я следовал этому уроку: https://www.sitepoint.com/developing-push-notifications-for-ios-10/
С толкатель, все нормально, работает нормально ..
Я получаю уведомление на свой телефон.
Но я хотел бы отправлять уведомления с моего веб-сервера ..
Я генерирую свой файл .pem (http://www.apptuitions.com/generate-pem-file-for-push-notification/)
Мой php код:
$apnsServer = 'ssl://gateway.sandbox.push.apple.com:2195';
$privateKeyPassword = 'mykey';
$message = "My message here !";
$deviceToken ='MYTOKENHERE';
$pushCertAndKeyPemFile = 'pushcert.pem';
$stream = stream_context_create();
stream_context_set_option($stream,'ssl','passphrase',$privateKeyPassword);
stream_context_set_option($stream,'ssl','local_cert',$pushCertAndKeyPemFile);
$connectionTimeout = 30;
$connectionType = STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT;
$connection = stream_socket_client($apnsServer, $errorNumber, $errorString, $connectionTimeout,$connectionType,$stream);
if (!$connection){
echo "Failed to connect to the APNS server. Error = $errorString <br/>";
exit;
}
else{
echo "Successfully connected to the APNS. Processing...</br>";
}
$messageBody['aps'] = array('alert' => $message,'badge' => 1, 'sound' => 'default');
$payload = json_encode($messageBody);
$notification = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;
$wroteSuccessfully = fwrite($connection, $notification, strlen($notification));
if (!$wroteSuccessfully){
echo "Could not send the message<br/>";
} else {
echo "Successfully sent the message<br/>";
}
Результат:
Успешно подключен к APNS. Обработка …
Успешно отправлено сообщение
Но я никогда не получаю уведомления на свой телефон
Зачем ?
Как отправить уведомление push с php?
Спасибо за вашу помощь 🙂
[РЕДАКТИРОВАТЬ]
Хорошо, я нашел решение ..
Просто добавьте в конце:
fclose($connection);
Задача ещё не решена.
Других решений пока нет …