Package com.kii.cloud.storage
Class KiiPushMessage
- java.lang.Object
-
- com.kii.cloud.storage.KiiPushMessage
-
public class KiiPushMessage extends java.lang.Object
Used for sending message to topic. Able to generate common, android/ios specific message. Bellow is the example.
APNS payload length restriction The maximum size allowed for a APNS notification payload is 2KB (2048 bytes); APNS refuses any notification that exceeds this limit. When a PushToUser message intended to send to APNS devices by using APIpublic void pushTest() throws AppException, IOException { // // Example 1. send common data to ios/Android // KiiPushMessage.Data commonData = new KiiPushMessage.Data(); commonData.put("myScore", 3); KiiPushMessage msg = KiiPushMessage.buildWith(commonData).build(); KiiTopic topic = KiiUser.topic("MyTopic"); topic.sendMessage(msg); // {"myScore":3} would delivered to both android/ios device. // // Example 2. disable APNS delivery. // KiiPushMessage msg2 = KiiPushMessage.buildWith(commonData) .enableAPNS(false).build(); topic.sendMessage(msg2); // {"myScore":3} would only delivered to android. // // Example 3. set GCM specific message. // KiiPushMessage.Data gcmData = new KiiPushMessage.Data(); gcmData.put("androidTest", true); GCMMessage gcm = GCMMessage.builder().withData(gcmData).build(); KiiPushMessage msg3 = KiiPushMessage.buildWith(commonData) .withGCMMessage(gcm).build(); topic.sendMessage(msg3); // {"myScore":3, "androidTest":true} would delivered to android device. // {"myScore":3} would delivered to ios Device. // // Example 4. set GCM/APNS specific message. // KiiPushMessage.Data apnsData = new KiiPushMessage.Data(); apnsData.put("iosTest", true); APNSMessage apns = APNSMessage.builder().withData(apnsData).build(); KiiPushMessage msg4 = KiiPushMessage.buildWith(commonData) .withGCMMessage(gcm).withAPNSMessage(apns).build(); topic.sendMessage(msg4); // {"myScore":3, "androidTest":true} would delivered to android device. // {"myScore":3, "iosTest":true} would delivered to ios Device. }
KiiTopic.sendMessage(KiiPushMessage)
, KiiCloud generates the payload from the message and if the payload length exceeds 2KB (2048 bytes), the API throws aBadRequestException
. Following example shows building of a push message and actual payload generated for APNS from that push message. For details about push message fields, refer to documentation.
Snippet to send message to APNS devices:
KiiTopic topic = KiiUser.topic("MyTopic"); Data data = new Data(); data.put("msg", "Hello, APNS!"); APNSMessage apns = APNSMessage.builder().withAlertBody("ab").build(); KiiPushMessage message = KiiPushMessage.buildWith(data) .withAPNSMessage(apns).build(); topic.sendMessage(message);
Notification payload generated by KiiCloud :
{ aps = { alert= { body = ab } }, to = MyTopic, su = 0abc1530-3735-446f-83ff-f42bd7d3563b, sa = app_id, s = 0abc1530-3735-446f-83ff-f42bd7d3563b, msg = Hello, APNS!, w = 1363835869135, st = APP_AND_USER }
JPush payload Following example shows building of a push message and actual payload generated for JPush from that push message. For details about push message fields, refer to documentation.
Snippet to send message to JPush devices:
KiiTopic topic = KiiUser.topic("MyTopic"); Data data = new Data(); data.put("title", "Hello, JPush!"); JPushMessage jPush = JPushMessage.builder().build(); KiiPushMessage message = KiiPushMessage.buildWith(data) .withAPNSMessage(jPush).build(); topic.sendMessage(message);
Notification payload generated by KiiCloud :
{ message = { topicID = MyTopic, objectScopeUserID = 0abc1530-3735-446f-83ff-f42bd7d3563b, objectScopeAppID = app_id, sender = 0abc1530-3735-446f-83ff-f42bd7d3563b, title = Hello, JPush! when = 1363835869135, objectScopeType = APP_AND_USER } }- See Also:
KiiTopic
,GCMMessage
,APNSMessage
,JPushMessage
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
KiiPushMessage.Builder
Builder of the message.static class
KiiPushMessage.Data
Represent data to be delivered to each device.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static KiiPushMessage.Builder
buildWith(KiiPushMessage.Data messageData)
Instantiate message builder with the data.org.json.JSONObject
toJSON()
Get JSONObjcet representation of this message.java.lang.String
toString()
-
-
-
Method Detail
-
toString
@NonNull public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
- Returns:
toJSON()
.toString()
-
toJSON
@NonNull public org.json.JSONObject toJSON()
Get JSONObjcet representation of this message. Operation of returned JSON object won't affect this object.- Returns:
- JSONObject represent this message.
-
buildWith
@NonNull public static KiiPushMessage.Builder buildWith(@NonNull KiiPushMessage.Data messageData)
Instantiate message builder with the data.- Parameters:
messageData
-- Returns:
- Builder of the message.
- Throws:
java.lang.IllegalArgumentException
- when messageData is null.
-
-