极光推送"/>
java极光推送
极光推送(JPush)是独立的第三方云推送平台,致力于为全球移动应用开发者提供移动消息推送服务。
jpush极光推送的原理其实很简单,只要android或ios客户端集成好了jpush证书,实现极光推送java服务端集成是一件很容易的事情,不需要想得太复杂。jpush极光推送证书与手机客户端的集成请百度,资料一大把。具体我们来看看java如何集成极光推送进行服务器端的使用。
原理
当用户登录成功的时候,给其设置一个Alias别名登录,我们把alias别名设置成唯一的标识,例如用户id,这样用户就会自动和手机客户端绑定在一块了,android与ios都有一个类似“JPUSHService.setAlias”的方法,然后jpush在java服务器推送消息的时候,该登录用户就可以收到推送的信息了。
当用户退出登录的时候,就会有一个类似“JPUSHService.deleteAlias”的方法解除手机客户端与极光推送的绑定,这样用户退出登录就不会再收到消息了( 注意:这个退出指的是退出用户登录,不是进入app后台,进入app后台没有退出依然可以收到jpush推送的信息 )。
Java集成
1、在maven pom.xml中添加jpush jar包
cn.jpush.api
jpush-client
3.3.9
2、添加相关依赖
cn.jpush.api
jiguang-common
1.1.3
ioty
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
3、推送给全平台import cn.jiguangmon.resp.APIConnectionException;
import cn.jiguangmon.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.audience.AudienceTarget;
import cn.jpush.api.push.model.notification.AndroidNotification;
import cn.jpush.api.push.model.notification.IosNotification;
import cn.jpush.api.push.model.notification.Notification;
import java.util.HashMap;
import java.util.Map;
public class JpushUtils
{
// app_key和masterSecret
private static String APP_KEY = "98a694a709xxxxxxxxxxxxx";
private static String MASTER_SECRET = "1abf8c2385exxxxxxxxxxx";
//极光推送>>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.alias(parm.get("id")))
.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(false).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();
}
}
}
注意:
1、.setAudience() 设置受众人群,也就是谁能接收到,具体请参考:.html
2、.addExtras(parm)设置附加参数,这里是传的一个map,可以传多个参数,用于打开通知跳转。
测试public static void main(String[] args) {
//设置推送参数
//这里就可以自定义推送参数了
Map parm = new HashMap();
//设备id,指定设备推送id
parm.put("id", "客户端定义的别名");
//设置提示信息,内容是文章标题
parm.put("msg","测试测试");
//附加参数
parm.put("qwe","123");
JpushUtils.jpushAll(parm);
}
这样就完成了java服务端的极光推送了,非常简单。
你还没有登录,请先使用 QQ登录 或 注册!
文章评论
发表评论
更多推荐
java极光推送
发布评论