1、引入pom
<dependency>
<groupId>cn.jpush.api</groupId>
<artifactId>jpush-client<artifactId/>
<version>3.4.7</version>
</dependency>
2、极光推送配置
/**
* 极光推送配置
*/
@Configuration
public class JPushClientConfig {
@Value("${jpush.appKey}")
private String appKey;
@Value("${jpush.masterSecret}")
private String masterSecret;
/**
* true表示ios推送生产环境,false表示ios推送开发环境
*/
@Value("${jpush.apnsProduction}")
private Boolean apnsProduction;
/**
* 离线消息保存时长,单位秒
*/
@Value("${jpush.timeToLive}")
private Long timeToLive;
@Bean
public JPushClient jPushClient() {
ClientConfig clientConfig = ClientConfig.getInstance();
clientConfig.setApnsProduction(apnsProduction);
clientConfig.setTimeToLive(timeToLive);
JPushClient client = new JPushClient(masterSecret, appKey, null, clientConfig);
return client;
}
}
3、推送实现类
@Autowired
private JpushClient jPushClient;
/**
* 推送消息
*
* @param aliasUserIds 用户id别名集合
* @param title 推送标题,小于40个字符
* @param content 推送内容,小于100个字符,禁止特殊字符
* @param extraMap 附加消息
*/
public void sendPush(List<String> aliasUserIds, String title, String content, Map<String, String> extraMap) {
try {
Notification.Builder notifyBuilder = new Notification.Builder();
// 安卓平台
AndroidNotification.Builder androidBuilder = new AndroidNotification.Builder();
androidBuilder.setTitle(title);
androidBuilder.setAlert(content);
androidBuilder.addExtras(extraMap);
notifyBuilder.addPlantformNotification(androidBuilder.build());
// ios平台
IosNotification.Builder iosBuilder = new IosNotification.Builder();
iosBuilder.setAlert(content);
iosBuilder.incrBadge(1); // 角标+1
iosBuilder.setSound("default"); // 通知提示音,无此声音则播放默认声音
iosBuilder.addExtras(extraMap);
notifyBuilder.addPlantformNotification(iosBuilder.build());
PushPayload.Builder builder = new PushPayload.Builder();
builder.setPlatform(Platform.android_ios()); // 增加安卓、ios推送平台
builder.setAudience(Audience.alias(aliasUserIds)); // 推送设备对象,使用别名
builder.setNotification(notifyBuilder.build()); // 推送通知
// 应用内消息,透传消息,该内容不会展示到通知栏,App收到后自行处理
Message.Builder msgBuilder = new Message.Builder();
msgBuilder.setTitle(title); // 消息标题,可选
msgBuilder.setMsgContent(content); // 消息内容,必填
// 开始推送
PushResult result = jPushClient.sendPush(builder.build());
if(result.isResultOK()){
// 推送成功处理
}
} catch(Exception ex) {
throw new BizException("推送异常:"+ ex.getMessage(), ex);
}
}