Azure通知中心将通知发送到特定设备

时间:2016-10-14 21:15:09

标签: ios azure xamarin.ios azure-notificationhub

我目前正在使用Azure Notification Hub替换PostSharp,因为post sharp似乎已停止在Azure中工作。我已经设置了我的应用程序并将其设备标记注册到Azure。我已经测试了从Azure门户广播到所有人的推送通知,它可以工作。

但是我想修改我的Web API项目,以便我可以向特定设备发送通知。这里到目前为止我所获得的代码是设备标签是iPhone的设备标签:

var alert = "{\"aps\":{\"alert\":\"Hello from .NET!\"}}";
       await hub.SendAppleNativeNotificationAsync(alert, new List<string> { deviceTag });

然而,这不起作用。我以为我可以发送类似于后​​期锐利工作的设备标签?我有点困惑,因为我知道这个设备已成功注册Azure中的集线器,因为如果我从门户网站进行测试广播,它会收到通知。如何修改我的API代码以发送到特定设备?我看到了这篇文章https://azure.microsoft.com/en-gb/documentation/articles/notification-hubs-aspnet-backend-windows-dotnet-wns-notification/,但它似乎很奇怪,因为我已经知道了设备令牌。是否可以向集线器发送通知并指定设备标签?

2 个答案:

答案 0 :(得分:5)

你绝对可以使用deviceToken发送。标签仅在您首先使用deviceHandle注册时才有效。您找到的文章(以及它讨论Google Cloud / Firebase Messaging和iOS的兄弟姐妹)假设您正在使用注册/标记机制。

您不需要这样做 - 如果您只想直接与deviceTokens对话,可以使用DirectSend或BatchSend通知机制。在&#34;标准&#34;您还可以使用每个消息遥测来查找直接或批量发送调用的结果。

我从注册导向示例开始,然后转到&#34;直接发送&#34;模型 - 我们将沿着这些方向发展。我还没有使用iOS实现,否则我会给你一个例子。

这些链接可能有所帮助:

Direct Send
(请注意,C#NotificationHubClient类型具有实现直接发送模型的SendDirectNotificationAsync方法 Batch Direct Send
Per-Message-Telemetry
Article putting it all together w/ link to GitHub sample

答案 1 :(得分:0)

要使用DirectSend,您需要使用定义的抽象类

Microsoft.Azure.NotificationHubs.Notification

您如何使用此类,以及需要配置哪些信息才能使其正常工作?