添加依赖

在pom.xml文件的<dependencies></dependencies>标签中,加入下面依赖,且刷新依赖

   <!-- 使用极光推送的jar包 --><dependency><groupId>cn.jpush.api</groupId><artifactId>jpush-client</artifactId><version>3.2.17</version></dependency>

创建的目录(类名包名皆可自己定义)

创建一个包jpush,包内创建

AbstractJPushToolUtil

JPushConfig

JPushToolUtil

JPushVO

在application-dev.properties 文件中增加

#极光推送
jpush.environment=false
jpush.appKey=54456f5d662dfdsg
jpush.masterSecret=vf8g4f84f74v8f4d78g4ff48

对应的数据,如图去自己的极光账户里“应用设置”找    

创建测试类

jpushTest

@Test
public void sendToRegistrationId() {JPushVO pushVO = new JPushVO();pushVO.setId(1L);pushVO.setUserName("橘子皮");pushVO.setContent("My name is 橘子皮");System.err.println(JPushToolUtil.sendToRegistrationId("通知标题","内标题","内容",pushVO,"1104a897924ffbec2ce"));
}

AbstractJPushToolUtil

@Slf4j
@Component
public abstract class AbstractJPushToolUtil {@Autowiredprivate JPushConfig jPush;protected static AbstractJPushToolUtil abstractJPushToolUtils;@PostConstructpublic void init() {abstractJPushToolUtils = this;}
/*** 发送给指定极光Id** @param registrationId* @param notificationTitle* @param msgTitle* @param msgContent* @param jPushVO* @return*/
public static boolean sendToRegistrationId1(String notificationTitle, StringmsgTitle, String msgContent, JPushVO jPushVO, String... registrationId) {boolean result = false;try {PushPayload pushPayload = buildPushObject_all_registrationId_alertWithTitle(notificationTitle, msgTitle, msgContent, jPushVO, registrationId);//TODOlog.info("极光推送入参信息pushPayload:{}", JSON.toJSONString(pushPayload));PushResult pushResult = getJPushClient().sendPush(pushPayload);log.info("极光推送出参信息pushResult:{}", JSON.toJSONString(pushResult));if (pushResult.getResponseCode() == 200) {result = true;}} catch (APIConnectionException e) {e.printStackTrace();} catch (APIRequestException e) {e.printStackTrace();}return result;}
    /*** 给指定设备id推送** @param notificationTitle 通知标题* @param msgTitle          消息标题* @param msgContent        消息内容* @param jPushVO       附加字段* @param registrationId     设备id* @return*/private static PushPayload buildPushObject_all_registrationId_alertWithTitle(String notificationTitle, String msgTitle, String msgContent, JPushVO jPushVO, String... registrationId) {return PushPayload.newBuilder()//指定要推送的平台,all代表当前应用配置了的所有平台,也可以传android等具体平台.setPlatform(Platform.all())//指定推送的接收对象,all代表所有人,也可以指定已经设置成功的tag或alias或该应应用客户端调用接口获取到的registration id.setAudience(Audience.registrationId(registrationId))//jpush的通知,android的由jpush直接下发,iOS的由apns服务器下发,Winphone的由mpns下发.setNotification(Notification.newBuilder()//指定当前推送的android通知.addPlatformNotification(AndroidNotification.newBuilder().setTitle(notificationTitle).setAlert(msgContent)//此字段为透传字段(类型被极光限定,不能传object),不会显示在通知栏。用户可以通过此字段来做一些定制需求,如特定的key传要指定跳转的页面(value).addExtra("data", JSON.toJSONString(jPushVO)).build())//指定当前推送的iOS通知.addPlatformNotification(queryIosNotification(queryIosAlert(notificationTitle, msgTitle, msgContent),jPushVO)).build())//Platform指定了哪些平台就会像指定平台中符合推送条件的设备进行推送。 jpush的自定义消息,// sdk默认不做任何处理,不会有通知提示。建议看文档http://docs.jpush.io/guideline/faq/的// [通知与自定义消息有什么区别?]了解通知和自定义消息的区别.setMessage(Message.newBuilder().setMsgContent(msgContent).setTitle(msgTitle).addExtra("data", JSON.toJSONString(jPushVO)).build()).setOptions(Options.newBuilder()//此字段的值是用来指定本推送要推送的apns环境,false表示开发,true表示生产;对android和自定义消息无意义.setApnsProduction(false)//此字段是给开发者自己给推送编号,方便推送者分辨推送记录.setSendno(1)//此字段的值是用来指定本推送的离线保存时长,如果不传此字段则默认保存一天,最多指定保留十天;.setTimeToLive(86400).build()).build();}
/*** 获取IOS的IosAlert** @param notificationTitle* @param subTitle* @param msgContent* @return*/
private static IosAlert queryIosAlert(String notificationTitle, String subTitle, String msgContent) {return IosAlert.newBuilder().setTitleAndBody(notificationTitle, subTitle, msgContent).build();
}

}

JPushConfig

import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Accessors(chain = true)
@Data
@Component
public class JPushConfig {/*** 极光官网-个人管理中心-点击查看-secret*/@Value("${jpush.masterSecret}")private String masterSecret;/*** 指定本推送要推送的apns环境,true表示生产,false表示开发*/@Value("${jpush.environment}")private boolean environment;/*** 极光官网-个人管理中心-appkey*/@Value("${jpush.appKey}")private String appKey;}

JPushToolUtil

@Slf4j
@Component
public class JPushToolUtil extends AbstractJPushToolUtil {     
        /*** 发送给指定的极光ID*/public static boolean sendToRegistrationId(String notificationTitle,String msgTitle,String msgContent,JPushVO jPushVO,String... registrationId) {return sendToRegistrationId1(notificationTitle,msgTitle,msgContent,jPushVO,registrationId);}
}

JPushVO

import lombok.experimental.Accessors;/*** 极光拓展字段不能传输object,限制了类型,所以封装更好些* 此类为极光推送拓展字段封装类(目前字段是暂定,你也可以拓展)** @author juzi* @date 2022-12-2*/
@Accessors(chain = true)
public class JPushVO {private Long id;private String userName;private String content;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}@Overridepublic String toString() {return "JPushVO{" +"id=" + id +", userName='" + userName + '\'' +", content='" + content + '\'' +'}';}
}

java集成极光推送(仅仅极光注册Id字段发送)相关推荐

  1. java集成华为推送

    集成华为推送 这类推送一般官方文档都比较详细,如果想要更加详细的了解建议查看官方文档. 官方文档地址:https://developer.huawei.com/consumer/cn/service/ ...

  2. android 极光推送开源,极光推送 - Android攻城狮的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.设置 AndroidManifest.xml libs/jpush-sdk-release 1.x.y.jar libs/armeabi/libsys 1.x.y.so 2.基础API init ...

  3. java集成oppo推送sdk

    准备工作 1.申请推送服务需要在oppo官网上架自己的app(比较蛋疼),需要一些资料,上架以后app评级为A/B的应用方可申请推送服务,获取到app_key和app_secret. 2.oppo官网 ...

  4. android极光推送 小米,极光推送- 小米厂商通道集成指南 - 极光文档

    JPush SDK 小米通道集成指南 概述 在国内 Android 生态中,推送通道都是由终端与云端之间的长链接来维持,严重依赖于应用进程的存活状态.如今一些手机厂家会在自家 rom 中做系统级别的推 ...

  5. iOS极光推送和极光IM中的JCore冲突问题

    问题:先集成JMessage,后集成JPush时发现,[JPUSHService registerForRemoteNotificationConfig:entity delegate:self]:报 ...

  6. java集成vivo推送sdk

    测试代码块 /*** vivo推送测试类* */ public class Vivo {public static final String ALIAS = "ALIAS";pub ...

  7. java向kafka推送数据_Java kafka消息的发送与接收

    一.项目工程结构 二.详细代码 KafkaUtils.java package com.bijian.study; import java.util.Arrays; import java.util. ...

  8. java 集成极光推送

    为什么需要推送 现在手机App中,每天都能收到大量的推送,这种推送是让用户了解app最新活动与消息,也是提醒用户参与活动并使用app的一个方法,在app中是必不可少的.公司开发app当然也需要使用一种 ...

  9. Android开发之第三方推送JPush极光推送知识点详解 学会集成第三方SDK推送

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 下面是一些知识点介绍,后期将会带领大家进行代码实战: 一.Android实现推送方式解决方案: 1.推 ...

最新文章

  1. 如何打印Qt中的枚举所对应的字符串
  2. opencv undefined reference to symbol '_ZN2c...异常
  3. 高等学校计算机规划教程,高等学校计算机应用规划教材:计算机组成原理简明教程...
  4. php global global,PHP中global全局变量的作用范围
  5. ji计算机一级题库,全国计算机等级考试一级题库0l0ji.doc
  6. 论文浅尝 - 计算机工程 | 大规模企业级知识图谱实践综述
  7. andorid actionBar
  8. PATB 1038. 统计同成绩学生(20)
  9. 新学到的Url形成方法
  10. 学习document.location.href和document.location.replace 区别
  11. 使用DataStudio连接本地虚拟机中的opengauss数据库
  12. redis java jar_Redis在java开发中使用
  13. win7打开xp共享的计算机,win7系统如何访问xp共享打印机_windows7连接xp共享打印机的方法...
  14. html 背景图片居中显示,CSS让背景图片居中显示的方法
  15. 从百草园到三味书屋,从servlet到springmvc
  16. python坦克大战
  17. MySQL数据库入门【最详细的入门教学】
  18. 防静电包装材料应用越来越广泛,这些变化你知道吗?
  19. 《痞子衡嵌入式半月刊》 第 65 期
  20. QGIS软件安装和汉化

热门文章

  1. Android 开发:由模块化到组件化(一)
  2. 立此存照之人生三十六式
  3. Arcgis软件应用(六)利用缓冲区分析和叠置分析进行购房选址
  4. 「科技农人」,可能是未来的当红职业
  5. 4.HTML设计超链接的网页
  6. Android开发之歪门邪道给 文本选中追加第三方软件入口
  7. win11家庭版没有微软自带的虚拟机Hyper-V的解决方案
  8. CLOSE_WAIT、CLOSE_WAIT原因,危害,如何避免
  9. java调tapd-api获取Bug并发企微通知
  10. java程序员找工作前需要准备的杀手锏有哪些?