进行推送的关键在于构建一个 PushPayload 对象。这是极光官网API的一句话。
打开极光源码找到PushPayload 类
看到这几个属性,然后在极光网站上有对应的说明
其实 要做的就是按照自己的需求给这个几个属性设置值而已。
package com.cn.hnust.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.cn.hnust.po.Message;
import cn.jpush.api.common.ClientConfig;
import cn.jpush.api.device.DeviceClient;
import cn.jpush.api.push.PushClient;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.Platform;
import cn.jpush.api.push.model.PushPayload;
import cn.jpush.api.push.model.PushPayload.Builder;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.Notification;
import cn.jpush.api.schedule.ScheduleClient;
import cn.jpush.api.schedule.model.SchedulePayload;
import cn.jpush.api.schedule.model.TriggerPayload;
@Component("noticeComponent")
public class NoticeComponent {
private final PushClient _pushClient;
private final DeviceClient _deviceClient;
private final ScheduleClient _scheduleClient;
private final ClientConfig conf;
private Logger logo = LoggerFactory.getLogger(this.getClass());
public NoticeComponent() {
String masterSecret = "";//密匙
String appKey = "";//极光的appkey
int maxRetryTimes = 600;
conf = ClientConfig.getInstance();
conf.setMaxRetryTimes(maxRetryTimes);
_pushClient = new PushClient(masterSecret, appKey, null, conf);
_deviceClient = new DeviceClient(masterSecret, appKey, null, conf);
_scheduleClient = new ScheduleClient(masterSecret, appKey, null, conf);
}
public void send(Message message) {
Builder builder = PushPayload.newBuilder();
builder.setPlatform(Platform.ios());
builder.setAudience(Audience.registrationId(message.getRegistrationIds()));
builder.setNotification(Notification.alert(message.getAlert()));
builder.setMessage(cn.jpush.api.push.model.Message.content(message.getAlert()));
cn.jpush.api.schedule.model.TriggerPayload.Builder triggerPayload = TriggerPayload.newBuilder();
triggerPayload.setSingleTime("");
cn.jpush.api.schedule.model.SchedulePayload.Builder builderSchedule = SchedulePayload.newBuilder();
builderSchedule.setName("a");
builderSchedule.setEnabled(true);
builderSchedule.setTrigger(triggerPayload.buildSingle());
builderSchedule.setPush(builder.build());
try {
sendBySysMessage(builder);
} catch (Exception e) {
// 推送报错
e.printStackTrace();
}
}
public void sendBySysMessage(Builder builder) throws Exception {
PushResult pushResult = get_pushClient().sendPush(builder.build());
logo.info("返回结果" + pushResult);
}
public PushClient get_pushClient() {
return _pushClient;
}
public DeviceClient get_deviceClient() {
return _deviceClient;
}
public ScheduleClient get_scheduleClient() {
return _scheduleClient;
}
}
结果: