我目前正在使用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/,但它似乎很奇怪,因为我已经知道了设备令牌。是否可以向集线器发送通知并指定设备标签?
答案 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
您如何使用此类,以及需要配置哪些信息才能使其正常工作?