На данный момент GCM работает только для Chrome и Android. аналогично Firefox и другие браузеры имеют свои собственные API.
Теперь встает вопрос, как реализовать push-уведомление, чтобы оно работало для всех распространенных браузеров с собственным бэкэндом.
- Вам нужен код скрипта на стороне клиента, т.е. сервисный работник, см. ( Push-уведомление Google ). Хотя это остается тем же для других браузеров.
2. после получения конечной точки с помощью Ajax сохраните ее вместе с именем браузера.
3.Вы должны создать серверную часть, которая имеет поля для заголовка, сообщения, значка, URL клика согласно вашим требованиям. теперь, после нажатия на уведомление об отправке, вызовите функцию, скажем send_push (). В этом написать код для разных браузеров, например
3.1. для хрома
$headers = array(
'Authorization: key='.$api_key(your gcm key),
'Content-Type: application/json',
);
$msg = array('to'=>'register id saved to your server');
$url = 'https://android.googleapis.com/gcm/send';
$ch = curl_init();
// Set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($msg));
$result = curl_exec($ch);
3.2. для Мозиллы
$headers = array(
'Content-Type: application/json',
'TTL':6000
);
$url = 'https://updates.push.services.mozilla.com/wpush/v1/REGISTER_ID_TO SEND NOTIFICATION_ON';
$ch = curl_init();
// Set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
для других браузеров, пожалуйста, Google ...