/** 发送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; } }
private static PushPayload buildPushObject_android_tag_alertWithTitle(String alert) { return PushPayload.newBuilder() .setPlatform(Platform.android()) .setAudience(Audience.tag("profit4all")) .setNotification(Notification.android(alert, TITLE, null)) .build(); }
/** * 构建推送对象:所有平台,推送目标是别名为 "alias1",通知内容为 ALERT。 * * @return */ private static PushPayload buildPushObject_all_alias_alert(String title, String message) { return PushPayload.newBuilder() .setPlatform(Platform.all()) .setAudience(Audience.alias(title)) .setNotification(Notification.alert(message)) .build(); }
/** 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(); }
/** * The shortcut of building a simple alert notification object to all platforms and all audiences */ public static PushPayload alertAll(String alert) { return new Builder() .setPlatform(Platform.all()) .setAudience(Audience.all()) .setNotification(Notification.alert(alert)) .build(); }
/** * 构建推送对象:平台是 Android,目标是 tag 为 "tag1" 的设备,内容是 Android 通知 ALERT,并且标题为 TITLE。 * * @return */ private static PushPayload buildPushObject_android_tag_alertWithTitle( String target, String title, String message) { return PushPayload.newBuilder() .setPlatform(Platform.android()) .setAudience(Audience.tag(target)) .setNotification(Notification.android(title, message, null)) .build(); }
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 lackOfParams_messageAndNotificaiton() { JsonObject payload = new JsonObject(); payload.add("platform", Platform.all().toJSON()); payload.add("audience", Audience.all().toJSON()); System.out.println("json string: " + payload.toString()); try { _client.sendPush(payload.toString()); } catch (APIConnectionException e) { e.printStackTrace(); } catch (APIRequestException e) { assertEquals(LACK_OF_PARAMS, e.getErrorCode()); } }
@Test public void invalidParams_platform() { JsonObject payload = new JsonObject(); payload.add("platform", new JsonPrimitive("all_platform")); payload.add("audience", Audience.all().toJSON()); payload.add("notification", Notification.alert(ALERT).toJSON()); System.out.println("json string: " + payload.toString()); try { _client.sendPush(payload.toString()); } catch (APIConnectionException e) { e.printStackTrace(); } catch (APIRequestException e) { assertEquals(INVALID_PARAMS, e.getErrorCode()); } }
/** 发送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; } }
@Override public boolean sendAll(String msg) { PushPayload payload = PushPayload.newBuilder() .setPlatform(Platform.all()) .setAudience(Audience.all()) .setNotification(Notification.alert(msg)) .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; } }
@Test public void invalidParams_notification_winphone_empty() { JsonObject payload = new JsonObject(); payload.add("platform", Platform.all().toJSON()); payload.add("audience", Audience.all().toJSON()); JsonObject notification = new JsonObject(); JsonObject winphone = new JsonObject(); notification.add("winphone", winphone); payload.add("notification", notification); System.out.println("json string: " + payload.toString()); try { _client.sendPush(payload.toString()); } catch (APIConnectionException e) { e.printStackTrace(); } catch (APIRequestException e) { assertEquals(INVALID_PARAMS, e.getErrorCode()); } }
@Test public void invalidParams_notification_android_builderidNotNumber() { JsonObject payload = new JsonObject(); payload.add("platform", Platform.all().toJSON()); payload.add("audience", Audience.all().toJSON()); JsonObject notification = new JsonObject(); JsonObject android = new JsonObject(); android.add("builder_id", new JsonPrimitive("builder_id_string")); notification.add("android", android); payload.add("notification", notification); System.out.println("json string: " + payload.toString()); try { _client.sendPush(payload.toString()); } catch (APIConnectionException e) { e.printStackTrace(); } catch (APIRequestException e) { assertEquals(INVALID_PARAMS, e.getErrorCode()); } }
/** * 构建推送对象:平台是 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; }