java 极光推送_Java使用极光推送详解-Fun言

极光推送(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

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

3、推送给全平台import cn.jiguang.common.resp.APIConnectionException;

import cn.jiguang.common.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() 设置受众人群,也就是谁能接收到,具体请参考:http://www.funyan.cn/p/304.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登录 或 注册!

文章评论

发表评论

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页