为多个应用创建单推通知通道

时间:2016-01-27 07:29:05

标签: azure push uwp azure-mobile-services

对于发送和接收推送通知,我想将我的所有应用注册到推送频道:

var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

我现在可以通过这个频道发送和接收推送。

问题是此频道仅对一个应用有效。如果我在另一台设备上安装相同的应用程序,我只会在发送它的同一台设备上收到该消息。

如何将通知推送到我的所有设备?

3 个答案:

答案 0 :(得分:1)

推送频道对于每个应用安装都是唯一的。您只能使用它来发送推送到这一个安装。如果您要将推送发送到运行您应用的所有设备,您必须在某处(您的服务器等)收集推送频道信息,或者您可以使用提供同时定位多个设备的https://parse.com/等服务。

答案 1 :(得分:0)

您是否尝试在多台设备上安装相同的debug-based应用? 我相信该渠道是基于该应用的某些身份,因此请尝试release它,我希望您创建一个基于商店的hidden应用并对其进行测试..

您编写的代码可以使用数百万台设备:)

答案 2 :(得分:0)

根据这篇文章,

设备可以在向通知中心注册时指定一个或多个标签,这些标签无需预先配置或处理,并为应用提供了一种非常简单的方式,可以通过单个设备向数百万台设备发送目标通知API调用,无需您实现自己的每设备通知路由基础架构 - https://blogs.windows.com/buildingapps/2013/09/16/delivering-push-notifications-to-millions-of-devices-with-windows-azure-notification-hubs/#mQppyhpwaEAcMehc.97

在Windows应用商店应用中,使用Windows应用商店设备SDK,只需调用

即可注册到通知中心
await hub.RegisterNativeAsync(channel.Uri, new string[] { "myTag", "myOtherTag" });

然后您可以通过调用

让您的.NET后端向所有客户广播一条消息
var toast = @"<toast><visual><binding template=""ToastText01""><text id=""1"">Hello everybody!</text></binding></visual></toast>";

await hub.SendWindowsNativeNotificationAsync(toast);