如何使用PushSharp在GCM中发送批处理通知

时间:2013-07-29 20:01:43

标签: c# android push-notification google-cloud-messaging pushsharp

正如标题所示,我有一份所有注册ID的列表,我想立即向所有注册ID发送相同的消息。

我被告知GCM可以同时处理大约1000个通知,但我真的很困惑如何在PushSharp中执行此操作(除了实际使用for循环实际发送它们)。如果有人熟悉这一点,我真的很感激一些帮助。

他是一些通用代码

push.RegisterGcmService(new GcmPushChannelSettings(ApiKey));

push.QueueNotification(new GcmNotification().ForDeviceRegistrationId(RegistrationID)
                                  .WithJson(json));

我想发送一个注册ID而不是一个注册ID。 参考常见问题解答,但没有关于如何做到的实际答案。

Reference 1

Reference 2

Reference 3

2 个答案:

答案 0 :(得分:3)

我从未使用过Push Sharp,但based on this code

您目前正在使用此方法,该方法接受单个注册ID:

public static GcmNotification ForDeviceRegistrationId(this GcmNotification n, string deviceRegistrationId)
{
    n.RegistrationIds.Add(deviceRegistrationId);
    return n;
}

请改用此方法,该方法接受多个注册ID:

public static GcmNotification ForDeviceRegistrationId(this GcmNotification n, IEnumerable<string> deviceRegistrationIds)
{
    n.RegistrationIds.AddRange(deviceRegistrationIds);
    return n;
}

答案 1 :(得分:0)

您需要使用它来获取扩展方法

using PushSharp;
using PushSharp.Android;
using PushSharp.Core;

然后你可以使用

GcmNotification notification = new GcmNotification().ForDeviceRegistrationId(pRegistrationIds)
                                              .WithJson(pMessage);