jpush极光推送的原理其实很简单,只要android或ios客户端集成好了jpush证书,实现极光推送java服务端集成是一件很容易的事情,不需要想得太复杂。jpush极光推送证书与手机客户端的集成请百度,资料一大把。
实现步骤就是:
当用户登录成功的时候,给其设置一个Alias别名登录,我们把alias别名设置成唯一的标识,例如用户id,这样用户就会自动和手机客户端绑定在一块了,android与ios都有一个类似“JPUSHService.setAlias”的方法,然后jpush在java服务器推送消息的时候,该登录用户就可以收到推送的信息了。
当用户退出登录的时候,就会有一个类似“JPUSHService.deleteAlias”的方法解除手机客户端与极光推送的绑定,这样用户退出登录就不会再收到消息了( 注意:这个退出指的是退出用户登录,不是进入app后台,进入app后台没有退出依然可以收到jpush推送的信息 )。
下面来集成极光推送java服务端吧!
1:在maven pom.xml中添加jpush jar包。
<dependency> <groupId>cn.jpush.api</groupId> <artifactId>jpush-client</artifactId> <version>3.2.17</version> </dependency>
2:实现jpush java服务器端推送消息的方法,本人些在main方法中,只写ios的推送,android推送方法基本是差不多的,自己发挥吧!
package com.baidu;
import cn.jiguang.common.ClientConfig;
import cn.jpush.api.JPushClient;
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.IosNotification;
import cn.jpush.api.push.model.notification.Notification;
public class SendMsgDemo {
//分配的jpush证书key
private static final String APP_KEY = "7702c25107131f84e49xxxxx";
//分配的jpush证书secret
private static final String MASTER_SECRET = "4f6aefa89f70568bxxxxxx";
public static void main(String[] args) {
JPushClient jPushClient = new JPushClient(MASTER_SECRET, APP_KEY, null,ClientConfig.getInstance());
PushPayload iosPayload = buildIosPushObjct();
try {
jPushClient.sendPush(iosPayload);
} catch (Exception e) {
e.printStackTrace();
}
}
//发送消息的方法
public static PushPayload buildIosPushObjct(){
//封装消息体
Notification notification = Notification.newBuilder().addPlatformNotification(
IosNotification.newBuilder().setAlert("哈哈哈555消息") //消息内容
.setSound("default").build()).build(); //声音默认
return PushPayload.newBuilder().setPlatform(Platform.all())
.setAudience(Audience.alias("myUserId")) //登录用户id
.setNotification(notification)
.setOptions(Options.newBuilder().setApnsProduction(false).build())
.build();
}
}从上面的jpush推送案例就可以看出,我把消息发送给了别名为“myUserId”的用户,该用户如果处于登录状态,则会收到java服务器端推送的“哈哈哈555消息”的消息。