无法使用 PubNub 从 GCM 推送通知中读取数据
Not able to read data from GCM Push notification using PubNub
我收到来自 PubNub 的推送通知。但是在收到推送通知时,它没有任何数据可读。
1) 我正在向 PubNub 发布如下消息:
JSONObject data = new JSONObject();
JSONObject aps = new JSONObject();
//Sample data
try {
data.put("data", "Android");
aps.put("aps", "iOS");
} catch (JSONException e) {
e.printStackTrace();
}
Map<String, Object> payload = new HashMap<>();
payload.put("pn_apns", aps);
payload.put("pn_gcm", data);
payload.put("pn_debug", true);
pubnub.publish()
.message(payload)
.channel("Activity_" + prefs.getActivityDetails().activity_id)
.async(new PNCallback<PNPublishResult>() {
@Override
public void onResponse(PNPublishResult result, PNStatus status) {
Log.i("", "");
}
});
此请求成功,我收到状态码 200
2) 我正在获取 GcmListenerService class 上的侦听器。但是,如果您看到 Bundle 对象 'data' 没有名为 'message' 的密钥来读取我们传递的密钥。请参阅下面随附的屏幕截图。
我的发布请求有什么问题吗?
3) 我的调试控制台在设备上显示成功消息成功接收到推送通知,这些推送通知已在每个推送服务的目标通道上注册推送消息。 '"Devices found for push notification apns: 0 gcm: 2 mpns: 0"'
如图所附的屏幕截图。
请让我知道我哪里错了,请纠正我。
我得到了答案。问题出在 JSONObject 库上。需要使用 JsonObject 而不是 JSONObject。
负载代码示例:
JsonObject payload = new JsonObject();
JsonObject androidData = new JsonObject();
androidData.addProperty(“Id”, 1);
androidData.addProperty(“Name”,“Marcelo”);
JsonObject data = new JsonObject();
data.add(“data”, androidData);
payload.add(“pn_gcm”, data);
payload.addProperty(“pn_debug”, true);
System.out.println("before pub: " + payload);
我收到来自 PubNub 的推送通知。但是在收到推送通知时,它没有任何数据可读。
1) 我正在向 PubNub 发布如下消息:
JSONObject data = new JSONObject();
JSONObject aps = new JSONObject();
//Sample data
try {
data.put("data", "Android");
aps.put("aps", "iOS");
} catch (JSONException e) {
e.printStackTrace();
}
Map<String, Object> payload = new HashMap<>();
payload.put("pn_apns", aps);
payload.put("pn_gcm", data);
payload.put("pn_debug", true);
pubnub.publish()
.message(payload)
.channel("Activity_" + prefs.getActivityDetails().activity_id)
.async(new PNCallback<PNPublishResult>() {
@Override
public void onResponse(PNPublishResult result, PNStatus status) {
Log.i("", "");
}
});
此请求成功,我收到状态码 200
2) 我正在获取 GcmListenerService class 上的侦听器。但是,如果您看到 Bundle 对象 'data' 没有名为 'message' 的密钥来读取我们传递的密钥。请参阅下面随附的屏幕截图。
我的发布请求有什么问题吗?
3) 我的调试控制台在设备上显示成功消息成功接收到推送通知,这些推送通知已在每个推送服务的目标通道上注册推送消息。 '"Devices found for push notification apns: 0 gcm: 2 mpns: 0"'
如图所附的屏幕截图。
请让我知道我哪里错了,请纠正我。
我得到了答案。问题出在 JSONObject 库上。需要使用 JsonObject 而不是 JSONObject。
负载代码示例:
JsonObject payload = new JsonObject();
JsonObject androidData = new JsonObject();
androidData.addProperty(“Id”, 1);
androidData.addProperty(“Name”,“Marcelo”);
JsonObject data = new JsonObject();
data.add(“data”, androidData);
payload.add(“pn_gcm”, data);
payload.addProperty(“pn_debug”, true);
System.out.println("before pub: " + payload);