如何在JavaPNS推送通知中添加JSON到有效负载?

时间:2015-03-18 10:31:28

标签: java ios apache notifications javapns

我想在通知中添加JSON。我现在可以发送警报了。如何通过通知发送JSON?

我正在使用的代码片段:

PushNotificationPayload payload = PushNotificationPayload.complex();
payload.addAlert("Hello!!!");
payload.addBadge(1);
payload.addSound("default");
payload.addCustomDictionary("id", "1");
List<PushedNotification> NOTIFICATIONS = Push.payload(payload, "D:\\ios_dev.p12", "1234", true, "b3ead5d64ba0e08241e236f3ee041d8a9f036b39a0b0537e99a5f8b0607");

for (PushedNotification NOTIFICATION : NOTIFICATIONS) {
  if (NOTIFICATION.isSuccessful()) {
     System.out.println("PUSH NOTIFICATION SENT SUCCESSFULLY TO: " + NOTIFICATION.getDevice().getToken());
  }
}

我想添加JSON,如:

{
  "message": message,
  "m_id": mId,
  "callNo": callNo
}

我怎么能通过这个?

2 个答案:

答案 0 :(得分:2)

我为你找到了解决方案。

PushNotificationPayload payload=PushNotificationPayload.fromJSON("{\"aps\":{\"content-available\":1,\"sound\":\"\",\"alert\":\"Some alert\"}}");

只获取一个String,创建JSON对象并将其作为String传递给'PushNotificationPayload.fromJSON'

它对我有用:)

答案 1 :(得分:0)

我参加派对的时间已经很晚了,但对于未来的读者:您可以使用PushNotificationPayload方法将addCustomDictionary作为一个Object添加到JSONObject的任意JSON对象第二个参数。查看source code,似乎整个有效负载都是Object个实例,并且传递给addCustomDictionary的{​​{1}}会直接添加到其中。因此,如果您将JSONObject实例传递给addCustomDictionary,则会在发送邮件时将其正确序列化为JSON对象。

如果您的自定义JSON对象很大,请记得使用PushNotificationBigPayload.complex()创建PushNotificationPayload实例,而不是PushNotificationPayload.complex()