一、添加极光推送所需要的jar包,项目使用的maven,所以只需要在pom文件里添加jar包依赖

<dependency>
<groupId>cn.jpush.api</groupId>
<artifactId>jpush-client</artifactId>
<version>3.2.3</version>
</dependency>

二,编写极光推送工具类

package com.cccuu.project.utils;

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.PushPayload.Builder;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.Notification; /**
* 极光推送工具类
*/ public class JiGuangPushUtil { //两个参数分别填写你申请的masterSecret和appKey
private static JPushClient jPushClient=new JPushClient("masterSecret","appKey"); /**
* 通知推送
* 备注:推送方式不为空时,推送的值也不能为空;推送方式为空时,推送值不做要求
* @param type 推送方式:1、“tag”标签推送,2、“alias”别名推送
* @param value 推送的标签或别名值
* @param alert 推送的内容
*/
private static void pushNotice(String type,String value,String alert){
Builder builder= PushPayload.newBuilder();
builder.setPlatform(Platform.all());//设置接受的平台,all为所有平台,包括安卓、ios、和微软的
//设置如果用户不在线、离线消息保存的时间
Options options=Options.sendno();
options.setTimeToLive(86400l); //设置为86400为保存一天,如果不设置默认也是保存一天
builder.setOptions(options);
//设置推送方式
if(type.equals("alias")){
builder.setAudience(Audience.alias(value));//根据别名推送
}else if(type.equals("tag")){
builder.setAudience(Audience.tag(value));//根据标签推送
}else{
builder.setAudience(Audience.all());//Audience设置为all,说明采用广播方式推送,所有用户都可以接收到
}
//设置为采用通知的方式发送消息
builder.setNotification(Notification.alert(alert));
PushPayload pushPayload=builder.build();
try{
//进行推送,实际推送就在这一步
PushResult pushResult=jPushClient.sendPush(pushPayload);
}catch(Exception e){
e.printStackTrace();
}
} /**
* 自定义消息推送
* 备注:推送方式不为空时,推送的值也不能为空;推送方式为空时,推送值不做要求
* @param type 推送方式:1、“tag”标签推送,2、“alias”别名推送
* @param value 推送的标签或别名值
* @param alert 推送的内容
*/
private static void pushMsg(String type, String value,String alert){
Builder builder= PushPayload.newBuilder();
builder.setPlatform(Platform.all());//设置接受的平台
if(type.equals("alias")){
builder.setAudience(Audience.alias(value));//别名推送
}else if(type.equals("tag")){
builder.setAudience(Audience.tag(value));//标签推送
}else{
builder.setAudience(Audience.all());//Audience设置为all,说明采用广播方式推送,所有用户都可以接收到
}
Message.Builder newBuilder=Message.newBuilder();
newBuilder.setMsgContent(alert);//消息内容
Message message=newBuilder.build();
builder.setMessage(message);
PushPayload pushPayload=builder.build();
try{
PushResult pushResult=jPushClient.sendPush(pushPayload);
}catch(Exception e){
e.printStackTrace();
}
} public static void main(String[] args){
//给标签为kefu的用户进行消息推送
JiGuangPushUtil.pushNotice("tag","kefu","你有新的任务,请及时处理");
} }

  代码中采用的是标签或者别名进行推送,需要在在手机APP端进行标签和别名设置,一般是在用户登录之后就设置好,这样只要用户登录,它的绑定别名或者标签就可以保存到极光服务器,而我们推送时,指定这个别名或者标签,就能将信息推送到对应用户的手机上。

  其实我们发起推送请求,只是将信息发送到了极光服务器之上,这个信息有一个保存时限,默认一天,只要用户使用手机APP登录系统,极光服务器就会将信息自动推送到对应别名或者标签的手机上,由此可见,信息并非由我们后台直接推送到手机,而是通过极光服务器这个中转站,而这正式极光的工作。

  注意:这里告知一个技巧,这个别名设置的时候,其实直接将用户ID设置为别名即可,既方便,又安全,不用再去想办法生成一个唯一的串来进行标识,甚至需要在后台数据库中用户表中新增字段。在标签设置的时候,一般是将一类用户设置为一个标签,然后实现给某类用户群发

java后台服务器实现极光推送的更多相关文章

  1. 极光推送经验之谈-Java后台服务器实现极光推送的两种实现方式

    原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/6439313.html Java后台实现极光推送有两种方式,一种是使用极光推送官方提供的推送请 ...

  2. idea + springboot 的java后台服务器通过小米推送

    public class XiaomiPush { // 1.小米推送(我只推送Android且只应用regId发起推送,所以下面只有推送Android的代码 private static final ...

  3. java服务端的 极光推送

    项目中用到了极光推送  下面写下笔记 首先引入jar包   下载地址https://docs.jiguang.cn/jpush/resources/(非maven项目的下载地址) <depend ...

  4. 极光推送_总结_01_Java实现极光推送

    一.代码实现 1.配置类—Env.java package com.ray.jpush.config; /**@desc : 极光推送接入配置 * * @author: shirayner * @da ...

  5. Java 使用第三方推送 -- 极光推送

    官网链接 : https://www.jiguang.cn/ 注册完成登录后,点击创建应用 这里不细说 Java后端的整合如下: 添加maven依赖的包 <dependency> < ...

  6. 极光推送-Java后台实现方式一:Http API

    Java后台实现极光推送有两种方式,一种是使用极光推送官方提供的推送请求API:https://api.jpush.cn/v3/push,另一种则是使用官方提供的第三方Java APIjar包,这里先 ...

  7. 极光推送>>java SDK服务端集成后台项目(使用详解)

    PS:如果你是第一次用推送,那就直接按照我的步骤来,再去看官方文档,这样,更容易能理解操作流程.还有——-请耐心看 极光文档(java SDK)请参考 [ 极光文档 ] 步骤一: 首先,你必须在 [极 ...

  8. JPush极光推送 Java调用服务器端API开发

       极光推送是:使得开发者可以即时地向其应用程序的用户推送通知或者消息,与用户保持互动,从而有效地提高留存率,提升用户体验.简单的说就是通过JPush后台管理网站进行app消息的推送.可以让用户及时 ...

  9. 极光推送JAVA代码示例

    一. 准备工作 1. 登录极光推送官网https://www.jpush.cn/,注册账号并登录 2. 创建应用 创建应用过程,详见百度经验:http://jingyan.baidu.com/arti ...

随机推荐

  1. Android开发之初识MVP模式

    各位亲爱的小伙伴,有没有想我啊,我胡汉wing又回来了. 很长一段时间没有更新博客..原因是..从离职回到学校以后,一直在享受最后的学生时光(打游戏).. 游戏固然很爽,但是觉得实在很荒废,于是半夜诈 ...

  2. 4.1、Libgdx的生命周期

    (原文:http://www.libgdx.cn/topic/32/4-1-libgdx%E7%9A%84%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F) 一个libgdx应 ...

  3. (NO.00001)iOS游戏SpeedBoy Lite成形记(四)

    下面我们来实现选手从起点开始移动到终点的代码. 首先在GameScene.h接口中添加matchRun方法: #import "CCNode.h" @interface GameS ...

  4. StarUML添加自定义approach和profile

    来源:fasiondog 添加Approch StarUML中的Approch也就是创建项目时的模板,其中预定义了所使用方法的模型和视图.StarUML默认Approach如下: StarUML的Ap ...

  5. DOS窗口如何实现复制粘贴

    最近很多时候直接ctrl+c和ctrl+v无法实现DOS中的复制与粘贴,自己输入很麻烦.就要选择其他方式.查找资源后,总结如下: 方法一:第一种方式:右键标记-->选中-->标题栏右键编辑 ...

  6. 做自己的软件的Gallery(一)

    先上效果图: 如图,android默认也有Gallery,很多软件在调用时,都是使用自己的Gallery,一方面好维护,另外一方面可以做优化.要做成以上样式,图片加载类起至关重要,一不小心,就好OOM ...

  7. WINCE之“系统事件”——System/Events

    1. 简介 Event--事件,相信有线程概念的编程人员都知道,它可以用来同步不同进程.不同线程的通信.在Windows CE 5.0系统中,有一种我称之为"系统事件"的Event ...

  8. linux下如何查询未知库所依赖的包

    经常会遇到linux下安装软件时提示少文件,如何知道所缺少的文件属于哪个包?用什么命令查看? 例如:/lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录 ...

  9. Linux内核中断和异常分析(下)

    这节,我们继续上,中(以前的日志有)篇目进行分析,结合一个真实的驱动案例来描述linux内核中驱动的中断机制,首先我们先了解一下linux内核中提供的中断接口. 这个接口我们需要包含一个头文件:#in ...

  10. error C3872: '0x3000': this character is not allowed in an identifier

    问题描述:这个字符不允许在标示符中使用 一般出这种错是因为你复制代码的时候,把不支持的字符复制进来了,这个字符就是中文空格,坑啊 解决: 把空格都删了,替换成英文的空格,就好了.