我正在使用Azure推送通知中心来自所有平台的设备注册。
我的后端是用PHP编写的,看着他们的文档,似乎你需要为每个平台推送一个通知。
$alert = '{"aps":{"alert":"Hello from PHP!"}}';
$notification = new Notification("apple", $alert);
$hub->sendNotification($notification, null);
有没有办法在一次通话中发送到所有平台?
答案 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/