Java 整合极光推送官方文档:https://github.com/jpush/jpush-api-java-client

这里记录一下简单的使用步骤:创建一个普通的 Maven 工程然后添加依赖

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

然后创建一个类测试消息推送,代码如下所示:

public class PushTest {
public static void main(String[] args) throws Exception {
// 实现推送最基本的两个参数
String APP_KEY = "APP_KEY";
String MASTER_SECRET = "SECRET";
// 构建极光客户端对象
JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
// 获取Payload对象,对象内封装这消息主体、消息接收范围等等,Payload是个重点
PushPayload payload = getPayload("消息接收测试");
// 调用客户端对象中的sendPush函数进行发送消息
jpushClient.sendPush(payload);
}
}

构建 Payload 对象

可以看到,通过两个基本参数构建了极光推送实例,然后获取到Payload将其发送出去完成了推送,这里含金量最高的地方就是获取 payload 的过程,上面获取 payload 的函数并没有写出来,这里单独拿出来看:

public static PushPayload getPayload(String msg) {
return new PushPayload.Builder()
.setPlatform(Platform.android())
.setAudience(Audience.all())
.setNotification(Notification.alert(msg))
.build();
}

构建最基本的 Payload 对象语法是这样写的:

PushPayload payload = new PushPayload.Builder().build();

但是这样构建出来的是空对象,我们需要在build()之前对这个实例进行一些操作,例如:

1. 发送消息的内容:最终显示在通知上的内容

 PushPayload payload = new PushPayload.Builder()
// 消息的具体内容,会显示在通知上
.setNotification(Notification.alert("【系统提示】您有五元话费优惠券待领取"))
.build();

显示在手机上类似这种效果:

2. 限制接收消息的平台:例如限制为安卓、苹果

PushPayload payload = new PushPayload.Builder()
.setNotification(Notification.alert("【系统提示】您有五元话费优惠券待领取"))
/*
* setPlatform代表客户端平台,也就是设备类型,最常用的几个参数为:
* 1. Platform.all():所有设备都可以接收
* 2. Platform.android():仅安卓设备可接收
* 3. Platform.ios():仅苹果设备可接收
* 4. Platform.android_ios():安卓、苹果都可以接收
* ....
*/
.setPlatform(Platform.all())
.build();

3. 限制接收消息的设备:匹配客户端自行设置的 TAG 标签以及 Alias 别名

PushPayload payload = new PushPayload.Builder()
.setNotification(Notification.alert("【系统提示】您有五元话费优惠券待领取"))
.setPlatform(Platform.all())
/*
* setAudience可以过滤符合条件的客户端,最常用的几个参数为:
* 1. Audience.all():没有设置过滤条件
* 2. Audience.alias("01", "02" ...):设置了目标别名的设备才能接收到
* 3. Audience.tag("VIP1", "VIP2" ...):添加了目标标签才可以接收到
* 4. Audience.tag_and("VIP", "SVIP" ...):必须同时拥有这两个标签才能接收到
* 5. Audience.tag_not("Guest" ...):必须不包含这些标签才能接收到
* 还有一些更高级的交集并集玩儿法等等....
*/
.setAudience(Audience.all())
.build();

4. 关于消息的其他配置项

PushPayload payload = new PushPayload.Builder()
.setNotification(Notification.alert("【系统提示】您有五元话费优惠券待领取"))
.setPlatform(Platform.all())
.setAudience(Audience.all())
/*
* setOptions对消息进行其他设置,需要传入Options实例,同样是链式编程然后跟上build()函数,例如:
* setTimeToLive(10):消息离线生存时间/s,发送消息后10秒内用户打开了APP就会收到消息,否则收不到
* 其他配置项我这里没用过就没去找....
*/
.setOptions(Options.newBuilder()
.setTimeToLive(10)
.build())
.build();

Java整合极光推送 ( 简单 )的更多相关文章

  1. Ionic5整合极光推送JPush ( 简单 )

    项目初始化 1. 安装项目依赖: # 安装cordova插件 ionic cordova plugin add jpush-phonegap-plugin --variable APP_KEY=&qu ...

  2. ThinkPHP框架整合极光推送DEMO

    极光推送(JPush)是独立的第三方云推送平台,致力于为全球移动应用开发者提供专业.高效的移动消息推送服务. 本篇博文讲述如何在将极光推送DEMO整合到ThinkPHP框架中,我使用的是极光推送PHP ...

  3. java接入极光推送

    直接提供工具类, 调用时直接调用其 sendToRegistrationId() 方法 1 import cn.jiguang.common.resp.APIConnectionException; ...

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

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

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

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

  6. 【Android应用开发】 推送原理解析 极光推送使用详解 (零基础精通推送)

    作者 : octopus_truth 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/45046283 推送技术产生场景 : -- ...

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

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

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

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

  9. java SDK服务端推送 --极光推送(JPush)

    网址:https://blog.csdn.net/duyusean/article/details/86581475 消息推送在APP应用中越来越普遍,来记录一下项目中用到的一种推送方式,对于Andr ...

随机推荐

  1. 2021-2-26:为什么需要 System.gc() ?

    JVM 默认启动参数中,DisableExplicitGC 为 false,ExplicitGCInvokesConcurrent 为 false,对于大多数 GC (除了 ZGC 的其他 GC,包括 ...

  2. CentOS 7.7+ Python3.7 下安装virtualenv和virtualenvwrapper

    1. 安装virtualenv和virtualenvwrapper # pip install virtualenv # pip install virtualenvwrpper 2. 寻找virtu ...

  3. 后端程序员之路 45、nginx CORS 跨域

    在提供api给其它应用使用时,有时我们会要限制它的跨域使用,而有时,我们又要用CORS来打破AJAX只能同源使用的限制 跨域资源共享 CORS 详解 - 阮一峰的网络日志http://www.ruan ...

  4. POJ-1321棋盘问题(简单深搜)

    简单搜索step1 POJ-1321 这是第一次博客,题目也很简单,主要是注意格式书写以及常见的快速输入输出和文件输入输出的格式. 递归的时候注意起始是从(-1,-1)开始,然后每次从下一行开始递归. ...

  5. canal mysql select权限粒度

    今天产品问了一个问题,问懵了 产品:canal在开通mysql权限时需要哪些权限 我:SELECT, REPLICATION SLAVE, REPLICATION CLIENT 产品:那SELECT权 ...

  6. SpringBoot启动流程分析原理(一)

    我们都知道SpringBoot自问世以来,一直有一个响亮的口号"约定优于配置",其实一种按约定编程的软件设计范式,目的在于减少软件开发人员在工作中的各种繁琐的配置,我们都知道传统的 ...

  7. CVE-2019-12409-Apache Solr JMX服务远程代码执行

    漏洞分析 https://www.freebuf.com/vuls/218730.html 漏洞介绍 该漏洞源于默认配置文件solr.in.sh中的ENABLE_REMOTE_JMX_OPTS配置选项 ...

  8. 优化自动化测试流程,使用 flask 开发一个 toy jenkins工具

    1.自动化 某一天你入职了一家高大上的科技公司,开心的做着软件测试的工作,每天点点点,下班就走,晚上陪女朋友玩王者,生活很惬意. 但是美好时光一般不长,这种生活很快被女主管打破.为了提升公司测试效率, ...

  9. 从RocketMQ的Broker源码层面验证一下这两个点

    本篇博客会从源码层面,验证在RocketMQ基础概念剖析,并分析一下Producer的底层源码中提到的结论,分别是: Broker在启动时,会将自己注册到所有的NameServer上 Broker在启 ...

  10. MySQL基础知识:MySQL Connection和Session

    在connection的生命里,会一直有一个user thread(以及user thread对应的THD)陪伴它. Connection和Session概念 来自Stackoverflow的一个回答 ...