【问题标题】:Azure Notification Hubs Send Notification to Specific DeviceAzure 通知中心向特定设备发送通知
【发布时间】:2017-02-24 09:55:38
【问题描述】:

我目前正在用 Azure 通知中心替换 PostSharp,因为 PostSharp 似乎已停止在 Azure 中工作。我已经设置了我的应用程序,并且它在 Azure 中注册了它的设备标签。我已经测试了从 Azure 门户向所有人广播的推送通知,它可以正常工作。

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

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

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

【问题讨论】:

    标签: ios azure xamarin.ios azure-notificationhub


    【解决方案1】:

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

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

    我从面向注册的示例开始,然后转向“直接发送”模型——我们将沿着这些方向发展。我还没有 iOS 实现工作,否则我会给你一个例子。

    这些链接可能会有所帮助:

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

    【讨论】:

    • 这很有帮助。我能找到的第一个人是在谈论直接发送。其他所有东西都只是使用了一个半技巧,为 userId 设置标签并发送给它。
    • @KristianBarrett 很高兴为您提供帮助
    【解决方案2】:

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

    Microsoft.Azure.NotificationHubs.Notification
    

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

    【讨论】:

    猜你喜欢
    • 2020-12-24
    • 1970-01-01
    • 2021-04-18
    • 2017-08-25
    • 2016-02-24
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多