2017-03-31 72 views
3

我正在使用Azure函数和通知中心构建原型。使用Azure通知中心向半径内的Android设备发送通知

在我的功能中,我希望根据地理空间查询选择一堆设备,并向这些设备发送通知。

我有使用Firebase和Android的通知,但是如何根据查询结果定位随机一组设备?

#r "Microsoft.Azure.NotificationHubs" 
#load "location.csx" 


using System; 
using System.Net; 
using Microsoft.Azure.NotificationHubs; 


public static async Task Run(LocationInfo message, IAsyncCollector<Notification> notification, TraceWriter log) 
{ 
    log.Info($"Sending GCM notification of a new user"); 
    string gcmNotificationPayload = "{\"data\": {\"message\": \"test message")\" }}"; 
    log.Info($"{gcmNotificationPayload}"); 
    await notification.AddAsync(new GcmNotification(gcmNotificationPayload)); 
} 

回答

2

您的解决方案将取决于您要实现的目标。您没有详细说明您定位的是哪种场景。

但在一般情况下,不知道你在找什么特别的,你可能会发现下面的例子有用:

您也可以从学习中受益Routing and tag expressions位于通知中心。

+0

不幸的是,我不能更明确地定义我的问题。我已经看过这两种方法。我确定预定义标签对我来说不是一个解决方案,因为我想要定位的设备将根据数据库中的数据而改变。从本质上讲,我正在寻找的是从基于空间查询的数据库中的设备中获取一堆,并在这些设备上通知它们,它们可能是ios或android。 –

+0

如果您已经拥有数据库并且可以运行空间查询,那么请将NH注册ID(或ID标记)作为用户表中的列保留。当查询返回要通知的用户列表时,请使用registrationId或标记推送到这些设备。这与通用推送没有区别。否则,我不确定你是否在问如何使用NH本身或使用哪种数据库技术? –

+0

我正在使用可以运行空间查询的DocumentDB。这正是我想要做的,但我不认为标签是一种合适的方法,因为我可以拥有数百万个设备。如何在Azure函数通知集线器输出绑定中定义标签。我正在关注https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-notification-hubs –

相关问题