将推送通知发送到所有平台

时间:2018-06-05 18:22:36

标签: php azure-notificationhub

我正在使用Azure推送通知中心来自所有平台的设备注册。

我的后端是用PHP编写的,看着他们的文档,似乎你需要为每个平台推送一个通知。

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

Source

有没有办法在一次通话中发送到所有平台?

1 个答案:

答案 0 :(得分:1)

看起来并非如此,您必须为要发送到的每个平台创建一个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);

注意:截至2018年4月10日,Google已弃用GCM。 GCM服务器和客户端API已弃用,将于2019年4月11日删除。
从现在开始,您应该使用适用于Android的Firebase云消息传递: https://firebase.google.com/docs/cloud-messaging/