向基于 Azure 的 Android 应用发送有针对性的推送通知
Posted
技术标签:
【中文标题】向基于 Azure 的 Android 应用发送有针对性的推送通知【英文标题】:Sending targeted push notification to Android app, which is based on Azure 【发布时间】:2016-05-08 19:42:31 【问题描述】:我有 android 应用程序,它与 Azure IoT 中心一起使用。 Azure 上有几个表,其中一个存储我的应用程序注册用户的凭据。该表有一个名为“userId”的列,并且这里的记录是唯一的。
我还有 node.js 脚本,它将处理其中一个表中的数据并通过 GCM 基于该数据发送推送通知。
function sendPush(userId, pushText)
var payload = pushText;
push.gcm.send(null, payload,
success: function(pushResponse)
console.log("Sent push:", pushResponse, payload);
request.respond();
,
error: function (pushResponse)
console.log("Error Sending push:", pushResponse);
);
我知道要使用 Google Cloud Messaging 进行有针对性的推送通知,您必须使用 InstanceID 类获取令牌。 但是我能否以某种方式使用“userId”列记录成为该令牌以使我的推送通知成为目标?
【问题讨论】:
您考虑过使用通知中心吗? 嗯,我的 Azure 项目有通知中心,但我仍然不知道它提供的所有机会。目前,我只将 API 密钥传递给集线器。我从我的项目的console.cloud.google.com 获得了这个密钥。 【参考方案1】:一般来说,您可以利用Tags
参数作为标签标识符来将通知推送到指定设备。更多信息请参考Sending push notifications with Azure Notification Hubs and Node.js。
如果您的要求在https://msdn.microsoft.com/en-us/library/azure/dn743807.aspx 列出的适当场景中,您可以使用后端应用程序中的标签进行注册
在后端nodejs应用中,你可以尝试使用以下代码注册标签:
var notificationHubService = azure.createNotificationHubService('<nb-name>', '<nb-keys>');
notificationHubService.createRegistrationId(function(err,registerId)
notificationHubService.gcm.createNativeRegistration(registerId,"identifier-tags",function(err,response)
console.log(response)
)
)
那么你可以尝试使用send
函数中的标签。
如有任何疑问,请随时告诉我。
【讨论】:
那么,你要我做的是每次我向用户表添加新用户时添加新标签?我应该在哪里添加注册函数,在用户表中插入脚本,对吧? 好的,我试试。谢谢。以上是关于向基于 Azure 的 Android 应用发送有针对性的推送通知的主要内容,如果未能解决你的问题,请参考以下文章
适用于 Android 谷歌云消息 (GCM) 的 Azure 移动服务从不向设备发送通知
如何从应用服务向 Azure 上的 EventHub 发送日志