在PushSharp 4.0中构建GCM消息

时间:2016-04-28 04:37:12

标签: c# android .net pushsharp

我对使用PushSharp为GCM推送通知构建消息体的方式感到有些困惑。 GitHub仓库中的文档和测试文件显示了这样的消息结构:

            broker.QueueNotification (new GcmNotification {
                RegistrationIds = new List<string> { 
                    regId
                },
                Data = JObject.Parse ("{ \"somekey\" : \"somevalue\" }")
            });

我一直在使用Postman进行测试,我将以下JSON格式的消息发送到https://gcm-http.googleapis.com/gcm/send

{
    "to": "000-0000-mytoken-foo",
    "notification" : {
        "title" : "Push Test Notification",
        "body" : "GCM Test Push",
        "icon" : "icon",
        "color" : "#FF4081"
    }

}

框架是否已经处理了消息的'to''notification'部分?根据我看到的示例,似乎我只需要输入通知对象的键:值对,但我似乎无法找到文档的位置或文档中实际消息的示例。我正在使用PushSharp的最新版本(4.x)。

1 个答案:

答案 0 :(得分:1)

你好,你可以这样去

var config = new GcmConfiguration("senderKey", "apiKey", null);
config.GcmUrl = "https://fcm.googleapis.com/fcm/send"; //!!!!!gmc changed to fcm;)

var gcmBroker = new GcmServiceBroker(config);
gcmBroker.Start();

_gcmBroker.QueueNotification(new GcmNotification
                {
                    RegistrationIds = new List<string> { "YourDeviceToken" },
                    Notification = JObject.Parse(
                        "{" +
                            "\"title\" : \"" + yourMessageTitle + "\"," +
                            "\"body\" : \"" + yourMessageBody + "\"," +
                            "\"sound\" : \"mySound.caf\"" +
                        "}") ,
                    Data = JObject.Parse(
                        "{" +                            
                            "\"CustomDataKey1\" : \"" + yourCustomDataValue1 + "\"," +
                            "\"CustomDataKey2\" : \"" + yourCustomDataValue2 + "\"" +
                        "}")
                });

我没有测试自定义数据值是否到达但是通知确实:)以“你的”开头的项目是你的动态参数,比如传递给那个方法的参数等。问题很久以前问了但是我开始了刚刚使用pushsharp :)希望这对PushSharp用户有帮助。