Отправить Push-уведомление всем платформам

David Pilkington спросил: 12 мая 2018 в 04:42 в: php

Я использую Azure Push Notifications Hub, который регистрирует устройства со всех платформ.

My backend написан на PHP и, глядя на их документы, кажется, что вам нужно нажать уведомление для каждой отдельной платформы .

$alert = '{"aps":{"alert":"Hello from PHP!"}}';
$notification = new Notification("apple", $alert);
$hub->sendNotification($notification, null);

Источник

Есть ли способ отправить все платформы за один вызов?

1 ответ

Will Jones ответил: 12 мая 2018 в 07:25

Это не так, нет, вам нужно будет создать объект 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 и клиентские API устарели и будут удалены сразу же 11 апреля 2019.
Теперь вы должны использовать Firebase Cloud Messaging для Android: https://firebase.google.com/docs/cloud-messaging /