首先注册一个极光推送的账号,这个就不细说了
附上官网链接 : https://www.jiguang.cn/
注册完成登录后,点击创建应用
创建完成后,记住AppKey 与 Master Secret 后面会用到
接下来,我们打开java开发工具,创建一个maven项目,不会的朋友自行百度
在pom.xml中添加极光推送所需要的jar包
cn.jpush.api
jpush-client
3.2.17
cn.jpush.api
jiguang-common
1.1.1
io.netty
netty-all
4.1.6.Final
compile
com.google.code.gson
gson
2.3
org.slf4j
slf4j-api
1.7.7
org.slf4j
slf4j-log4j12
1.7.7
log4j
log4j
1.2.17
待jar包下载完成后
我们来创建两个类
JPush是极光推送的功能实现,demo是我们的测试类
进入JPush.java
创建两个常量,AppKey 与 Master Secret
// 设置好账号的app_key和masterSecret是必须的
private static String APP_KEY = "XXXXXXXXXXXXXXXXXX";
private static String MASTER_SECRET = "XXXXXXXXXXXXXXXX";
接下来是平台推送功能的实现,注释很详细,我就不细说了
android
//极光推送>>Android
//Map parm是我自己传过来的参数,同学们可以自定义参数
public static void jpushAndroid(Map parm) {
//创建JPushClient(极光推送的实例)
JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
//推送的关键,构造一个payload
PushPayload payload = PushPayload.newBuilder()
.setPlatform(Platform.android())//指定android平台的用户
.setAudience(Audience.all())//你项目中的所有用户
//.setAudience(Audience.registrationId(parm.get("id")))//registrationId指定用户
.setNotification(Notification.android(parm.get("msg"), "这是title", parm))
//发送内容
.setOptions(Options.newBuilder().setApnsProduction(false).build())
//这里是指定开发环境,不用设置也没关系
.setMessage(Message.content(parm.get("msg")))//自定义信息
.build();
try {
PushResult pu = jpushClient.sendPush(payload);
} catch (APIConnectionException e) {
e.printStackTrace();
} catch (APIRequestException e) {
e.printStackTrace();
}
}
ios
//极光推送>>ios
//Map parm是我自己传过来的参数,同学们可以自定义参数
public static void jpushIOS(Map parm) {
//创建JPushClient
JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
PushPayload payload = PushPayload.newBuilder()
.setPlatform(Platform.ios())//ios平台的用户
.setAudience(Audience.all())//所有用户
//.setAudience(Audience.registrationId(parm.get("id")))//registrationId指定用户
.setNotification(Notification.newBuilder()
.addPlatformNotification(IosNotification.newBuilder()
.setAlert(parm.get("msg"))
.setBadge(+1)
.setSound("happy")//这里是设置提示音(更多可以去官网看看)
.addExtras(parm)
.build())
.build())
.setOptions(Options.newBuilder().setApnsProduction(false).build())
.setMessage(Message.newBuilder().setMsgContent(parm.get("msg")).addExtras(parm).build())//自定义信息
.build();
try {
PushResult pu = jpushClient.sendPush(payload);
} catch (APIConnectionException e) {
e.printStackTrace();
} catch (APIRequestException e) {
e.printStackTrace();
}
}
如果平台很多的话,可以使用全平台推送
//极光推送>>All所有平台
public static void jpushAll(Map parm) {
//创建JPushClient
JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
//创建option
PushPayload payload = PushPayload.newBuilder()
.setPlatform(Platform.all()) //所有平台的用户
.setAudience(Audience.registrationId(parm.get("id")))//registrationId指定用户
.setNotification(Notification.newBuilder()
.addPlatformNotification(IosNotification.newBuilder() //发送ios
.setAlert(parm.get("msg")) //消息体
.setBadge(+1)
.setSound("happy") //ios提示音
.addExtras(parm) //附加参数
.build())
.addPlatformNotification(AndroidNotification.newBuilder() //发送android
.addExtras(parm) //附加参数
.setAlert(parm.get("msg")) //消息体
.build())
.build())
.setOptions(Options.newBuilder().setApnsProduction(true).build())//指定开发环境 true为生产模式 false 为测试模式 (android不区分模式,ios区分模式)
.setMessage(Message.newBuilder().setMsgContent(parm.get("msg")).addExtras(parm).build())//自定义信息
.build();
try {
PushResult pu = jpushClient.sendPush(payload);
System.out.println(pu.toString());
} catch (APIConnectionException e) {
e.printStackTrace();
} catch (APIRequestException e) {
e.printStackTrace();
}
}
这样我们的推送功能就完成了
接下来我们来测试推送功能
demo.java
再三强调,rid是移动端通过api获取的,没有rid是没法推送的(想测试的和移动端商量)
public class demo {
public static void main(String[] args) {
//设置推送参数
//这里同学们就可以自定义推送参数了
Map parm = new HashMap();
//这里的id是,移动端集成极光并登陆后,极光用户的rid
parm.put("id", "XXXXXXXXXXXXXXXX");
//设置提示信息,内容是文章标题
parm.put("msg","测试测试,收到请联系发送人");
JPush.jpushAll(parm);
}
}
运行测试类
状态码等于0,说明推送成功
接下来我们登录极光推送后台,查看消息是否成功推送
登录后,点击应用的右下角 的 推送按钮 进入推送后台界面
由于我们是使用java api实现推送,所以消息类型应该选择 Api
进入api消息推送界面后,我们发现有一条消息
对应代码查看是否是先前推送的消息
对比发现,就是我们先前推送的消息
这样我们 使用 java 实现第三方 极光推送 功能就完成了,小伙伴们可以稍作修改,集成到各自的项目里
注意 AppKey 与 Master Secret 切记不要填错 , 出现什么问题也要首先检查 AppKey 与 Master Secret 是否填错
项目地址 : JPush-demo