Azure通知集线器将通知发送到特定设备

我目前正在用Azure通知中心replacePostSharp,因为post sharp似乎已经停止在Azure中工作。 我已经安装了我的应用程序,它注册了Azure的设备标签。 我已经testing了从Azure门户广播到所有的推送通知,它的工作原理。

不过,我想修改我的Web API项目,以便我可以发送通知给特定的设备。 这里代码,我已经到目前为止设备标签是iPhone的设备标签:

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

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

你一定可以用deviceToken发送。 标签只有在你首先使用deviceHandle进行注册时才有效。 您find的文章(以及讨论Google Cloud / Firebase Messaging和iOS的兄弟)假设您正在使用注册/标签机制。

您不需要这样做 – 如果您只想直接与deviceTokens进行通话,则可以使用DirectSend或BatchSend通知机制。 在“标准”层,您还可以使用每条消息遥测查找直接或批量发送呼叫的结果。

我开始注册导向的例子,然后转移到“直接发送”模式 – 我们将沿着这些路线发展。 我还没有iOS实现工作,否则我会给你一个例子。

这些链接可能有助于:

直接发送
(请注意,C# NotificationHubClienttypes具有实现直接发送模型的SendDirectNotificationAsync方法)。
批量直接发送
每消息遥测
文章把它们连接到GitHub示例

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

 Microsoft.Azure.NotificationHubs.Notification 

你如何使用这个类,以及需要configuration哪些信息才能正常工作?