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消息”的消息。