Я использую концентратор push-уведомлений Azure, на котором регистрируются устройства со всех платформ.
Мой бэкэнд написан на PHP и, глядя на их документы, кажется, что вам нужно отправить уведомление для каждой отдельной платформы.
$alert = '{"aps":{"alert":"Hello from PHP!"}}';
$notification = new Notification("apple", $alert);
$hub->sendNotification($notification, null);
Есть ли способ отправить на все платформы за один звонок?
Это не так, нет, вам придется создать Notification
Объект для каждой платформы, которую вы хотите отправить, так как они используют разные форматы сообщений:
Из ссылки на источник:
Для iOS
$alert = '{"aps":{"alert":"Hello from PHP!"}}';
$notification = new Notification("apple", $alert);
$hub->sendNotification($notification, null);
Для Kindle Fire
$message = '{"data":{"msg":"Hello from PHP!"}}';
$notification = new Notification("adm", $message);
$hub->sendNotification($notification, null);
Для Windows Phone 8.0 и 8.1 Silverlight
$toast = '<?xml version="1.0" encoding="utf-8"?>' .
'<wp:Notification xmlns:wp="WPNotification">' .
'<wp:Toast>' .
'<wp:Text1>Hello from PHP!</wp:Text1>' .
'</wp:Toast> ' .
'</wp:Notification>';
$notification = new Notification("windowsphone", $toast);
$notification->headers[] = 'X-WindowsPhone-Target : toast';
$notification->headers[] = 'X-NotificationClass : 2';
$hub->sendNotification($notification, null);
Для Android
$message = '{"data":{"msg":"Hello from PHP!"}}';
$notification = new Notification("gcm", $message);
$hub->sendNotification($notification, null);
Примечание. По состоянию на 10 апреля 2018 года Google больше не поддерживает GCM. API сервера и клиента GCM устарели и будут удалены, как только 11 апреля 2019 года.
Теперь вы должны использовать Firebase Cloud Messaging для Android:
https://firebase.google.com/docs/cloud-messaging/
Других решений пока нет …