在将列插入表中时,我必须从 azure 数据库列表向特定用户发送推送通知。我不确定应该使用哪种方式直接使用 APNS 还是通知中心?
1) 如果我使用来自 azure 的直接 APNS(在插入查询下方),则在表 TODOITEM 中插入列时,我会收到推送通知,但是我应该如何将其从表发送给特定用户
我发现 null
应该替换为 token ,我在哪里可以获得特定的用户 token
function insert(item, user, request) {
request.execute();
setTimeout(function() {
push.apns.send(null, {
alert: "Alert: " + item.text,
payload: {
inAppMessage: "Hey, a new item arrived: '" + item.text + "'"
}
});
}, 2500);}
2)如果我使用通知中心,我什至无法使用在第一种情况下发生的表中插入列时的推送通知。 在 IOS 端,我使用通知中心代码:
SBNotificationHub* hub = [[SBNotificationHub alloc] initWithConnectionString:
@"..
[hub registerNativeWithDeviceToken:deviceToken tags:nil completion:^(NSError* error) {
if (error != nil) {
NSLog(@"Error registering for notifications: %@", error);
}
}];
在情况 1 中发生时,如何发送有关表插入的通知以及如何发送给表的特定用户(有什么方法可以查询表并发送)
请您回答这两种情况。
最佳答案
您需要使用标签。标签可以唯一标识一个设备(唯一 ID)或一组设备(例如:国家/地区、团队等)。
在您的 iOS 代码中,您当前将 nil 传递给 Tags 参数。将其更改为唯一 ID,但不使用设备 token 。我花了一整天的时间才发现它太长了,但如果用作标签则不会产生任何错误。去搞清楚!我使用的是每次启动应用程序时生成的 GUID,并将其存储在后端。
在 JS 代码中,将 null 替换为唯一 ID。您可以使用字符串(而不是数组)指定多个标签,这些标签之间用逗号分隔且不包含空格。
在门户中,您可以打开服务中心页面并使用调试选项卡通过标签发送测试通知。
关于ios - Azure 通知中心与 APNS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29419786/