极光推送主方法
package com.huijia.erp.ts;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import cn.jpush.api.JPushClient;
import cn.jpush.api.common.resp.APIConnectionException;
import cn.jpush.api.common.resp.APIRequestException;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.Message;
import cn.jpush.api.push.model.Options;
import cn.jpush.api.push.model.Platform;
import cn.jpush.api.push.model.PushPayload;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.AndroidNotification;
import cn.jpush.api.push.model.notification.IosNotification;
import cn.jpush.api.push.model.notification.Notification;
public class Jdpush {
protected static final Logger LOG = LoggerFactory.getLogger(Jdpush.class);
private static final long serialVersionUID = 1L;
//在极光注册上传应用的 appKey 和 masterSecret
private static final String appKey ="6cfad79049ca08896130e56a";
//必填,每个应用都对应一个masterSecret
private static final String masterSecret = "1cbaa6b6c788ccac368460ce";
public static final String TITLE = "申通快递";
public static final String ALERT = "祝大家新春快乐";
public static final String MSG_CONTENT = "申通快递祝新老客户新春快乐";
public static final String REGISTRATION_ID = "0900e8d85ef";
public static final String TAG = "tag_api";
public static JPushClient jpushClient=null;
public static String sendPush(String devicetoken,String alert,String flag, String orderid) {
jpushClient = new JPushClient(masterSecret, appKey, 3);
//生成推送的内容,这里我们先测试全部推送
//PushPayload payload=buildPushObject_all_alias_alert(devicetoken,alert,message);
//PushPayload payload = Jdpush.buildPushObject_ios_audienceMore_messageWithExtras();
//PushPayload payload =Jdpush.buildPushObject_ios_tagAnd_alertWithExtrasAndMessage();
PushPayload payload =Jdpush.buildPushObject_android_and_ios( devicetoken, alert, flag, orderid);
try {
System.out.println(payload.toString());
PushResult result = jpushClient.sendPush(payload);
System.out.println(result+"................................");
LOG.info("Got result - " + result);
} catch (APIConnectionException e) {
LOG.error("Connection error. Should retry later. ", e);
} catch (APIRequestException e) {
LOG.error("Error response from JPush server. Should review and fix it. ", e);
LOG.info("HTTP Status: " + e.getStatus());
LOG.info("Error Code: " + e.getErrorCode());
LOG.info("Error Message: " + e.getErrorMessage());
LOG.info("Msg ID: " + e.getMsgId());
}
return "success";
}
public static PushPayload buildPushObject_all_alias_alert(String devicetoken,String alert,String message) {
return PushPayload.newBuilder()
.setPlatform(Platform.all())//设置接受的平台
.setAudience(Audience.alias(devicetoken))//Audience设置为all,说明采用广播方式推送,所有用户都可以接收到
.setNotification(Notification.alert(alert))
.setMessage(Message.newBuilder()
.setMsgContent(message)
.addExtra("from", "Jpush sss true")
.build())
.build();
}
public static PushPayload buildPushObject_android_and_ios(String devicetoken,String alert,String flag,String orderid) {
return PushPayload.newBuilder()
.setPlatform(Platform.android_ios())
.setAudience(Audience.alias(devicetoken))
.setNotification(Notification.newBuilder()
.setAlert(alert)
.addPlatformNotification(AndroidNotification.newBuilder()
.addExtra("flag", flag)
.addExtra("OrderId", orderid)
.build()
)
.addPlatformNotification(IosNotification.newBuilder()
.incrBadge(1)
.addExtra("OrderId", orderid)
.addExtra("flag", flag)
.build())
.build())
.build();
}
public static PushPayload buildPushObject_all_all_alert() {
return PushPayload.alertAll(ALERT);
}
public static PushPayload buildPushObject_android_tag_alertWithTitle() {
return PushPayload.newBuilder()
.setPlatform(Platform.android())
.setAudience(Audience.all())
.setNotification(Notification.android(ALERT, TITLE, null))
.build();
}
public static PushPayload buildPushObject_ios_tagAnd_alertWithExtrasAndMessage() {
return PushPayload.newBuilder()
.setPlatform(Platform.ios())
.setAudience(Audience.alias("1044"))
.setNotification(Notification.newBuilder()
.addPlatformNotification(IosNotification.newBuilder()
.setAlert(ALERT)
.setBadge(5)
.setSound("happy")
.addExtra("from", "JPush")
.addExtra("aaa", "aa")
.addExtra("flag", true)
.build())
.build())
.setMessage(Message.content(MSG_CONTENT))
.setOptions(Options.newBuilder()
.setApnsProduction(false)
.build())
.build();
}
public static PushPayload buildPushObject_ios_audienceMore_messageWithExtras() {
return PushPayload.newBuilder()
.setPlatform(Platform.android_ios())
.setAudience(Audience.alias("1044"))
.setNotification(Notification.alert("123"))
.setMessage(Message.newBuilder()
.setMsgContent(MSG_CONTENT)
.addExtra("from", "JPush")
.build())
.build();
}
}
调用方法
package cn.itcast.erp.filter;
public class TuiSong {
/**
* 推送消息入口
* @param devicetoken 设备别名
* @param alert 弹出信息
* @param content 消息内容
* @return
*/
public static String tuiSong(String devicetoken,String alert,String flag,String orderid){
String message=Jdpush.sendPush(devicetoken,alert,flag,orderid);
return message;
}
public static void main(String[] args) {
String message=Jdpush.sendPush("1044","新年好!","true","123456789");
System.out.println(message);
}
}