JPush 是经过考验的大规模 App 推送平台,每天推送消息数超过 5 亿条。 开发者集成 SDK 后,可以通过调用 API 推送消息。同时,JPush 提供可视化的 web 端控制台发送通知,统计分析推送效果。 JPush 全面支持 Android, iOS, Winphone 三大手机平台。
1.首先要注册认证极光后台(认证注册完成后会得到appkey和秘钥)
2.去推送设置
应用包名由安卓端提供
3.导入依赖jar包
<dependency>
<groupId>cn.jpush.api</groupId>
<artifactId>jpush-client</artifactId>
<version>3.3.7</version>
</dependency>
4. java代码
import cn.jpush.api.JPushClient;
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.PushPayload.Builder;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.Notification;
/**
* 极光推送工具类
*/
public class JPush {
private static final String MASTER_SECRET = ""; //TODO(填写你的MASTER_SECRET)
private static final String APP_KEY = ""; //TODO(填写你的APP_KEY)
//两个参数分别填写你申请的masterSecret和appKey
private static JPushClient jPushClient=new JPushClient(MASTER_SECRET,APP_KEY);
/**
* 通知推送
* 备注:推送方式不为空时,推送的值也不能为空;推送方式为空时,推送值不做要求
* @param type 推送方式:1、“tag”标签推送,2、“alias”别名推送
* @param alias 推送的标签或别名值
* @param context 推送的内容
* @param title 标题
*/
public static void pushNotice(String type, String alias, String context, String title){
Builder builder= PushPayload.newBuilder();
builder.setPlatform(Platform.all());//设置接受的平台,all为所有平台,包括安卓、ios、和微软的
//设置如果用户不在线、离线消息保存的时间
Options options=Options.sendno();
options.setTimeToLive(86400l); //设置为86400为保存一天,如果不设置默认也是保存一天
builder.setOptions(options);
//设置推送方式
if(type.equals("alias")){
builder.setAudience(Audience.alias(alias));//根据别名推送
}else if(type.equals("tag")){
builder.setAudience(Audience.tag(alias));//根据标签推送
}else{
builder.setAudience(Audience.all());//Audience设置为all,说明采用广播方式推送,所有用户都可以接收到
}
//设置为采用通知的方式发送消息
// builder.setNotification(Notification.alert(title));
Notification android = Notification.android(context, title,null);
builder.setNotification(android);
//builder.setNotification(Notification.alert(alert));
PushPayload pushPayload=builder.build();
try{
//进行推送,实际推送就在这一步
PushResult pushResult=jPushClient.sendPush(pushPayload);
System.out.println(pushResult);
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args){
//给标签为18的用户进行消息推送
JPush.pushNotice("alias","18","安村桥的cod严重超标了,超标值为2.3,请前往环境管家app上查看","【环境管家】数据超标通知");
}
}
到这里就结束啦