在官网首页注册登录
在我的图标下面,点击 服务中心 进入 找到开发者平台 进入
进入开发者应用运营平台
2. 创建应用填写应用名称 点击确认
点击下一步
设置应用包名,并点击下一步
点击下载推送demo,安装在手机上
3. 获取应用的AppKey 和 Master Secret在设置里面,找到对应app的 appkey 和 Master Secret
4. 创建springboot应用在idea中创建Springboot应用,xml文件如图所示
5. 导入工具类4.0.0 org.springframework.boot spring-boot-starter-parent 2.5.6 com.lyl.demo jiguang_demo 0.0.1-SNAPSHOT jiguang_demo Demo project for Spring Boot 1.8 cn.jpush.api jpush-client 3.4.8 org.springframework.boot spring-boot-starter-web org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin org.projectlombok lombok
APP_KEY 和 MASTER_SECRET 替换成自己的
package com.lyl.demo.jiguang_demo.utils;
import cn.jiguang.common.resp.APIConnectionException;
import cn.jiguang.common.resp.APIRequestException;
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.audience.Audience;
import cn.jpush.api.push.model.notification.Notification;
import lombok.extern.slf4j.Slf4j;
import java.util.Collection;
@Slf4j
public class PushUtils {
protected static final String APP_KEY = "app-key";
protected static final String MASTER_SECRET = "MASTER_SECRET";
public static final JPushClient PUSH_CLIENT = new JPushClient(MASTER_SECRET, APP_KEY);
public static PushResult push(Platform platform, Audience audience, Notification notification) {
PushPayload pushPayload = new PushPayload.Builder()
.setPlatform(platform)
.setAudience(audience)
.setNotification(notification)
.setOptions(Options.newBuilder()
.setApnsProduction(true)
.build())
.build();
PushResult pushResult = null;
try {
pushResult = PUSH_CLIENT.sendPush(pushPayload);
} catch (APIConnectionException | APIRequestException e) {
e.printStackTrace();
}
return pushResult;
}
public static PushResult pushMsg(Platform platform, Audience audience, Message message) {
PushPayload pushPayload = new PushPayload.Builder()
.setPlatform(platform)
.setAudience(audience)
.setMessage(message)
.setOptions(Options.newBuilder()
.setApnsProduction(true)
.build())
.build();
PushResult pushResult = null;
try {
pushResult = PUSH_CLIENT.sendPush(pushPayload);
} catch (APIConnectionException | APIRequestException e) {
e.printStackTrace();
}
return pushResult;
}
public static PushResult pushMsgByAlias(Collection aliases, String msg) {
return pushMsg(Platform.all(), Audience.alias(aliases), Message.content(msg));
}
public static PushResult pushAndroidMsgByAlias(Collection aliases, String msg) {
return pushMsg(Platform.android(), Audience.alias(aliases), Message.content(msg));
}
public static PushResult pushIOSMsgByAlias(Collection aliases, String msg) {
return pushMsg(Platform.ios(), Audience.alias(aliases), Message.content(msg));
}
public static PushResult pushMsg(Platform platform, Audience audience, String msg) {
return pushMsg(platform, audience, Message.content(msg));
}
public static PushResult pushMsg(String msg) {
return pushMsg(Platform.all(), Audience.all(), Message.content(msg));
}
public static PushResult pushNotification(String noticeMsg) {
return push(Platform.all(), Audience.all(), Notification.alert(noticeMsg));
}
}
6. 测试
编写controller
@PostMapping("/pushMsgByAlias")
public Result pushMsgByAlias(@NotBlank String alias, @NotBlank String msg){
PushResult pushResult = PushUtils.pushMsgByAlias(Arrays.asList(alias.split(",")), msg);
return Result.success(pushResult);
}
@PostMapping("/pushMsgByIds")
public Result pushMsgByIds(@NotBlank String ids, @NotBlank String msg){
PushResult pushResult = PushUtils.pushMsg(Platform.all(), Audience.registrationId(ids.split(",")), msg);
return Result.success(pushResult);
}
7. 测试
打开postMan ,测试
8. 注意推送是有限制的,通知一天只有十条,而消息是 200万次/天



