一、前置准备
1. 注册极光账号并创建应用
- 访问 极光推送官网,注册企业账号(个人账号也可测试);
- 登录后进入「开发者中心」→「创建应用」,填写应用名称(如「员工周年祝福推送」),选择对应平台(Android/iOS/小程序,按需选);
- 创建成功后,记录 3 个核心参数(后续开发必用):
AppKey:应用唯一标识;Master Secret:服务端调用 API 的密钥(严禁泄露);PackageName/Bundle ID:客户端包名 / 应用 ID(需和客户端配置一致)。
2. 环境依赖(服务端以 Java 为例)
极光推送支持 Java/Python/PHP 等主流语言,这里以 Java(SpringBoot)为例,添加 Maven 依赖:
<!-- 极光推送 Java SDK(最新版) -->
<dependency>
<groupId>cn.jpush.api</groupId>
<artifactId>jpush-client</artifactId>
<version>3.8.16</version>
</dependency>
<!-- 依赖的 JSON 工具 -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.9</version>
</dependency>
二、服务端核心开发
1. 封装极光推送工具类(开箱即用)
创建 JPushUtil,封装通用推送方法,适配「单推 / 批量推 / 按别名推」。
import cn.jpush.api.JPushClient;
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.audience.Audience;
import cn.jpush.api.push.model.notification.Notification;
import cn.jpush.api.common.resp.APIConnectionException;
import cn.jpush.api.common.resp.APIRequestException;
import java.util.List;
/**
* 极光推送工具类(适配员工周年/生日祝福推送)
*/
public class JPushUtil {
// 替换成你的 AppKey 和 Master Secret
private static final ;
;
;
PushResult {
(MASTER_SECRET, APP_KEY);
{
PushPayload.newBuilder()
.setPlatform(Platform.all())
.setAudience(Audience.alias(alias))
.setNotification(Notification.alert(content)
.addPlatformNotification(
cn.jpush.api.push.model.notification.AndroidNotification.newBuilder()
.setTitle(title)
.addExtra(, )
.addExtra(, )
.build()
)
.addPlatformNotification(
cn.jpush.api.push.model.notification.IosNotification.newBuilder()
.setAlert(content)
.setBadge()
.setSound()
.build()
)
)
.setOptions(
cn.jpush.api.push.model.Options.newBuilder()
.setApnsProduction(IS_PRODUCTION)
.build()
)
.build();
jpushClient.sendPush(payload);
System.out.println( + result);
result;
} (APIConnectionException e) {
System.err.println();
e.printStackTrace();
} (APIRequestException e) {
System.err.println( + e.getErrorCode() + + e.getErrorMessage());
e.printStackTrace();
} {
jpushClient.close();
}
;
}
PushResult {
(MASTER_SECRET, APP_KEY);
{
PushPayload.newBuilder()
.setPlatform(Platform.all())
.setAudience(Audience.alias(aliasList))
.setNotification(Notification.alert(content)
.addPlatformNotification(
cn.jpush.api.push.model.notification.AndroidNotification.newBuilder()
.setTitle(title)
.build()
)
)
.setOptions(cn.jpush.api.push.model.Options.newBuilder()
.setApnsProduction(IS_PRODUCTION)
.build())
.build();
jpushClient.sendPush(payload);
System.out.println( + result);
result;
} (Exception e) {
e.printStackTrace();
} {
jpushClient.close();
}
;
}
}


