我对使用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)。
答案 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用户有帮助。