@Test public void testMsgContent() { Message message = Message.content("msg content"); JsonObject json = new JsonObject(); json.add("msg_content", new JsonPrimitive("msg content")); Assert.assertEquals("", json, message.toJSON()); }
/** The shortcut of building a simple message object to all platforms and all audiences */ public static PushPayload messageAll(String msgContent) { return new Builder() .setPlatform(Platform.all()) .setAudience(Audience.all()) .setMessage(Message.content(msgContent)) .build(); }
/** 发送jpush到客户端 */ @Override public boolean sendByRegisitrationID( String msg, Map<String, String> extras, Integer imsi, String... regisitrationIDs) { String extrasJson = new Gson().toJson(extras); // extrasJson = extrasJson.replaceAll("\"", "'"); PushPayload payload = null; if (imsi == IMSI_ANDROID) { payload = PushPayload.newBuilder() .setPlatform(Platform.all()) .setAudience(Audience.registrationId(regisitrationIDs)) .setMessage( Message.newBuilder().setMsgContent(msg).addExtra("data", extrasJson).build()) .build(); } // else if(imsi==IMSI_IOS){ // payload = PushPayload.newBuilder() // .setPlatform(Platform.all()) // .setAudience(Audience.registrationId(regisitrationIDs)) // .setNotification(Notification.ios(msg, extras)) //alert(msg) // .build(); // } else { // 默认按iphone处理 payload = PushPayload.newBuilder() .setPlatform(Platform.all()) .setAudience(Audience.registrationId(regisitrationIDs)) .setNotification(Notification.ios(msg, extras)) // alert(msg) .build(); } // PushPayload payload = PushPayload // .newBuilder() // .setPlatform(Platform.all()) // .setAudience(Audience.registrationId(regisitrationIDs)) // .setMessage( // Message.newBuilder().setMsgContent(msg) // .addExtra("data", extrasJson).build()).build(); // // PushPayload payload = PushPayload.newBuilder() // .setPlatform(Platform.all()) // .setAudience(Audience.registrationId(regisitrationIDs)) // .setNotification(Notification.ios(msg, extras)) //alert(msg) // .setMessage( // Message.newBuilder().setMsgContent(msg) // .addExtra("data", extrasJson).build()) // .build(); try { PushResult result = jpushClient.sendPush(payload); return result.isResultOK(); } catch (Exception e1) { errorLogger.writeErrorLog(e1.getMessage()); appLogger.error(e1.getMessage(), e1); debugLogger.error(e1.getMessage(), e1); return false; } }
public PushPayload buildAndroidPayload(String msg, String devId, Map<String, String> extra) { Message.Builder msgBuilder = Message.newBuilder().setMsgContent(msg); if (extra != null) msgBuilder.addExtras(extra); return PushPayload.newBuilder() .setPlatform(Platform.android()) .setAudience(Audience.registrationId(devId)) // .setNotification(Notification.android(msg, msg, extra)) .setMessage(msgBuilder.build()) .build(); }
/** * 构建推送对象:平台是 Andorid 与 iOS,推送目标是 ("tag1" 与 "tag2" 的并集) 且("alias1" 与 "alias2" 的并集),推送内容是 - 内容为 * MSG_CONTENT 的消息, 并且附加字段 from = JPush。 * * @return */ private static PushPayload buildPushObject_ios_audienceMore_messageWithExtras() { return PushPayload.newBuilder() .setPlatform(Platform.android_ios()) .setAudience( Audience.newBuilder() .addAudienceTarget(AudienceTarget.tag("tag1", "tag2")) .addAudienceTarget(AudienceTarget.alias("alias1", "alias2")) .build()) .setMessage( Message.newBuilder().setMsgContent("MSG_CONTENT").addExtra("from", "JPush").build()) .setOptions(Options.newBuilder().setApnsProduction(PRODUCT_MODE).build()) .build(); }
@Test public void testMsgContentAndExtras() { Message message = Message.newBuilder() .setMsgContent("msgContent") .addExtra("key1", "value1") .addExtra("key2", 222) .addExtra("key3", Boolean.FALSE) .build(); JsonObject json = new JsonObject(); json.add("msg_content", new JsonPrimitive("msgContent")); JsonObject extras = new JsonObject(); extras.add("key1", new JsonPrimitive("value1")); extras.add("key2", new JsonPrimitive(222)); extras.add("key3", new JsonPrimitive(Boolean.FALSE)); json.add("extras", extras); Assert.assertEquals("", json, message.toJSON()); }
/** 发送jpush到工作端口 */ @Override public boolean sendByRegisitrationIDToWorker( String msg, Map<String, String> extras, String... regisitrationIDs) { // PushPayload payload = PushPayload.newBuilder() // .setPlatform(Platform.all()) // .setAudience(Audience.registrationId(regisitrationIDs)) // .setNotification(Notification.newBuilder() // .addPlatformNotification(AndroidNotification.newBuilder() // .addExtra("orderID", orderID) // .build()) // .build()) // .setMessage(Message.content(msg)) // .build(); String extrasJson = new Gson().toJson(extras); // extrasJson = extrasJson.replaceAll("\"", "'"); PushPayload payload = PushPayload.newBuilder() .setPlatform(Platform.all()) .setAudience(Audience.registrationId(regisitrationIDs)) // .setNotification(Notification.ios(msg, extras)) //alert(msg) .setMessage( Message.newBuilder().setMsgContent(msg).addExtra("data", extrasJson).build()) .build(); // PushPayload payload = PushPayload.newBuilder() // .setPlatform(Platform.all()) // .setAudience(Audience.registrationId(regisitrationIDs)) // .setNotification( Notification.android(msg, msg, extras) // //.ios(msg, extras) // Notification.alert("") // ).build(); try { PushResult result = jpushClientForService.sendPush(payload); return result.isResultOK(); } catch (Exception e1) { errorLogger.writeErrorLog(e1.getMessage()); appLogger.error(e1.getMessage(), e1); debugLogger.error(e1.getMessage(), e1); return false; } }
/** * 构建推送对象:平台是 iOS,推送目标是 "tag1", "tag_all" 的交集, 推送内容同时包括通知与消息 - 通知信息是 ALERT,角标数字为 5,通知声音为 "happy", * 并且附加字段 from = "JPush";消息内容是 MSG_CONTENT。通知是 APNs 推送通道的, 消息是 JPush 应用内消息通道的。APNs * 的推送环境是“生产”(如果不显式设置的话,Library 会默认指定为开发) * * @return */ private static PushPayload buildPushObject_ios_tagAnd_alertWithExtrasAndMessage( String target, String targetAll, String messageTitle, String message, String otherTitle, String otherMessage) { return PushPayload.newBuilder() .setPlatform(Platform.ios()) .setAudience(Audience.tag_and(target, targetAll)) .setNotification( Notification.newBuilder() .addPlatformNotification( IosNotification.newBuilder() .setAlert(messageTitle) .setBadge(5) .setSound("happy.caf") .addExtra(otherTitle, otherMessage) .build()) .build()) .setMessage(Message.content(message)) .setOptions(Options.newBuilder().setApnsProduction(PRODUCT_MODE).build()) .build(); }
@Override public JsonElement toJSON() { JsonObject json = new JsonObject(); if (null != platform) { json.add(PLATFORM, platform.toJSON()); } if (null != audience) { json.add(AUDIENCE, audience.toJSON()); } if (null != notification) { json.add(NOTIFICATION, notification.toJSON()); } if (null != message) { json.add(MESSAGE, message.toJSON()); } if (null != options) { json.add(OPTIONS, options.toJSON()); } if (null != sms) { json.add(SMS, sms.toJSON()); } return json; }
@Test(expected = IllegalArgumentException.class) public void testIllegal() { Message.newBuilder().build(); }