Push notification Azure通知:跟踪收到通知的设备,或如何避免将多个通知推送到任何设备

Push notification Azure通知:跟踪收到通知的设备,或如何避免将多个通知推送到任何设备,push-notification,apple-push-notifications,azure-notificationhub,Push Notification,Apple Push Notifications,Azure Notificationhub,我有一个调度程序,每15分钟运行一次,检查是否有任何通知通过azure通知中心发送到注册设备。计划程序获取标记字符串和通知消息,并将其发送到此方法“SendAppleNativeNotificationAsync(消息,标记)”。可以针对不同的标记组合发送多条消息 比方说 设备A-标记有“性别:女性”、“年龄:25”、“年龄组:20-30” 设备B-标记有“性别:男性”、“年龄:31”、“年龄组:30-40” 设备C-标记有“性别:女性”、“年龄:35”、“年龄组:30-40” 我有3个通知要在

我有一个调度程序,每15分钟运行一次,检查是否有任何通知通过azure通知中心发送到注册设备。计划程序获取标记字符串和通知消息,并将其发送到此方法“SendAppleNativeNotificationAsync(消息,标记)”。可以针对不同的标记组合发送多条消息

比方说

设备A-标记有“性别:女性”、“年龄:25”、“年龄组:20-30” 设备B-标记有“性别:男性”、“年龄:31”、“年龄组:30-40” 设备C-标记有“性别:女性”、“年龄:35”、“年龄组:30-40”

我有3个通知要在当前15分钟的周期内发送 标签“性别:女性”的信息1和 标签“年龄组:30-40”的消息2 标签“性别:男性”的信息3

现在的问题是设备C和B属于多个通知类别,它应该在几秒钟内接收多条消息

我正在寻找一种更好地避免/处理这种情况的方法。我将感谢任何帮助。谢谢

可能会有所帮助。如果你的信息本身是相同的,那么只需将你的标签组合成这样的表达:“性别:女性| |年龄组:30-40 | |性别:男性”。如果仅使用“| |”运算符,则最多可以有20个标记

如果它不起作用,那么我们可以讨论更多选项,但我需要有关您的业务逻辑的更多详细信息。

更新 我有了一个新的想法,您确实可以使用标记表达式来实现您的目标:

SendAppleNativeNotificationAsync(Message1,                          '(gender:female && !ageGroup:30-40 && !gender:male)');
SendAppleNativeNotificationAsync(Message2,                          '(ageGroup:30-40 && !gender:female && !gender:male)');
SendAppleNativeNotificationAsync(Message3,                          '(gender:male !ageGroup:30-40 && !gender:female)');
SendAppleNativeNotificationAsync(merge(Message1,Message2),          '(gender:female && ageGroup:30-40 && !gender:male)');
SendAppleNativeNotificationAsync(merge(Message2,Message3),          '(ageGroup:30-40 && gender:male && !gender:female)');
SendAppleNativeNotificationAsync(merge(Message1,Message3),          '(gender:female && gender:male && !ageGroup:30-40)'); //everything is possible!
SendAppleNativeNotificationAsync(merge(Message1,Message2,Message3), '(gender:female && gender:male && ageGroup:30-40)');
当然,你应该为此实现一些算法,但我想你会明白。。。这个解决方案的缺点是表达式是,所以只有当您最多有6个标记时,这才有效。您可以在第一次迭代时这样做,但为了将来证明,我建议您坚持使用原始答案

原始答案 我猜Azure通知中心不是为处理这种情况而设计的。 我想说,您最好的选择是不使用Azure通知中心上的标记,而是自己实现一些映射

  • ,而非团体
  • 在应用程序后端存储用户的属性/兴趣
  • 在发送通知之前,请检查一些用户是否会根据其属性/兴趣收到多个通知
    • 如果是这种情况,请将通知消息合并为这些用户的一个通知
  • 使用用户标记专门向用户发送(合并)通知

Hi Efimovandr。谢谢你的回复。我已经有了标记表达式。可以基于不同的标记发送多条消息。。例如“针对女性的信息”、“针对男性的信息”和针对30-40岁年龄组用户的第三条信息请让我知道这些信息是否足够,这是一种痛苦!滥发任何带有多个频繁通知的设备肯定会给用户带来麻烦。记住这一点,我希望通知中心应该有一个解决办法!如果没有,那就太遗憾了:(…谢谢你,巴里斯