SpringBoot 集成 极光消息推送

极光通讯用于java web即时通信---构建idea下maven+springboot第三方即时通讯 极光用于web通信(java后端+js前端) 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博... 阅读详情

最近App需要集成消息推送,公司最终采用了极光,做一下工具类,可以直接粘贴使用

极光官方文档:https://docs.jiguang.cn//jpush/server/server_sdk/

maven 包

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

工具类:

1.函数接口

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.List;

/**
 * @author zqh
 */
@FunctionalInterface
public interface IJiGuangPushPayloadFuction {

    /**
     * 初始化需要使用的函数
     *
     * @param jiGuangPushPayloadFuction
     * @return
     */
    PushPayload init(IJiGuangPushPayloadFuction jiGuangPushPayloadFuction);

    /**
     * 快捷地构建推送对象:所有平台,所有设备,内容为 ALERT 的通知。
     */
    default PushPayload buildPushObject_all_all_alert(String alert) {
        return PushPayload.alertAll(alert);
    }

    /**
     * 构建推送对象:所有平台,推送目标是别名为 "alias1",通知内容为 ALERT
     */
    default PushPayload buildPushObject_all_alias_alert(String alias, String alert) {
        return PushPayload.newBuilder()
                .setPlatform(Platform.all())
                .setAudience(Audience.alias(alias))
                .setNotification(Notification.alert(alert))
                .build();
    }

    /**
     * 构建推送对象:所有平台,推送目标是别名为 "alias1",通知内容为 ALERT,单独设置android 推送消息等级
     *
     */
    default PushPayload buildPushObject_all_alias_priority_alert(String alias, String alert) {
        return PushPayload.newBuilder()
                .setPlatform(Platform.all())
                .setAudience(Audience.alias(alias))
                .setNotification(Notification.newBuilder()
                        .addPlatformNotification(AndroidNotification.newBuilder().setAlert(alert).setPriority(1).build()
                        )
                        .addPlatformNotification(IosNotification.newBuilder().setAlert(alert).build())
                        .build())
                .build();
    }

    /**
     * 构建推送对象:平台是 Android,目标是 tag 为 "tag1" 的设备,内容是 Android 通知 ALERT,并且标题为 TITLE
     *
     * @return
     */
    default PushPayload buildPushObject_android_tag_alertWithTitle(String tag, String alert, String title) {
        return PushPayload.newBuilder()
                .setPlatform(Platform.android())
                .setAudience(Audience.tag(tag))
                .setNotification(Notification.android(alert, title, null))
                .build();
    }

    /**
     * 构建推送对象:平台是 iOS,推送目标是 "tag1", "tag_all" 的交集,推送内容同时包括通知与消息 - 通知信息是 ALERT,角标数字为 5,通知声音为 "happy",并且附加字段 from = "JPush";消息内容是 MSG_CONTENT。通知是 APNs 推送通道的,消息是 JPush 应用内消息通道的。APNs 的推送环境是“生产”(如果不显式设置的话,Library 会默认指定为开发)
     *
     * @return
     */
    default PushPayload buildPushObject_ios_tagAnd_alertWithExtrasAndMessage(List<String> tags, String alert, String msgContent) {
        return PushPayload.newBuilder()
                .setPlatform(Platform.ios())
                .setAudience(Audience.tag_and(tags))
                .setNotification(Notification.newBuilder()
                        .addPlatformNotification(IosNotification.newBuilder()
                                .setAlert(alert)
                                .setBadge(5)
                                .setSound("happy")
                                .addExtra("from", "JPush")
                                .build())
                        .build())
                .setMessage(Message.content(msgContent))
                .setOptions(Options.newBuilder()
                        .setApnsProduction(true)
                        .build())
                .build();
    }

    /**
     * 构建推送对象:平台是 Andorid 与 iOS,推送目标是 ("tag1" 与 "tag2" 的并集)交("alias1" 与 "alias2" 的并集),推送内容是 - 内容为 MSG_CONTENT 的消息,并且附加字段 from = JPush。
     *
     * @return
     */
    default PushPayload buildPushObject_ios_audienceMore_messageWithExtras(List<String> tags, List<String> aliass, String msgContent) {
        return PushPayload.newBuilder()
                .setPlatform(Platform.android_ios())
                .setAudience(Audience.newBuilder()
                        .addAudienceTarget(AudienceTarget.tag(tags))
                        .addAudienceTarget(AudienceTarget.alias(aliass))
                        .build())
                .setMessage(Message.newBuilder()
                        .setMsgContent(msgContent)
                        .addExtra("from", "JPush")
                        .build())
                .build();
    }
}

2.测试类

import cn.jiguang.common.ClientConfig;
import cn.jiguang.common.resp.APIConnectionException;
import cn.jiguang.common.resp.APIRequestException;
import cn.jpush.api.JPushClient;
import cn.jpush.api.push.PushResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author zqh
 */
public class JiGuangPushUtils {

    private final static Logger logger = LoggerFactory.getLogger(JiGuangPushUtils.class);

    /**
     * 填写你申请的masterSecret和appKey
     */
    static JPushClient jpushClient = new JPushClient("masterSecret", "appKey", null, ClientConfig.getInstance());

    public static void pushMsg(IJiGuangPushPayloadFuction jiGuangPushPayloadFuction) {
        try {
            System.out.println(jiGuangPushPayloadFuction);
            PushResult result = jpushClient.sendPush(jiGuangPushPayloadFuction.init(jiGuangPushPayloadFuction));
            logger.info("Got result - " + result);
        } catch (APIConnectionException e) {
            logger.error("Connection error, should retry later", e);
        } catch (APIRequestException e) {
            logger.error("Should review the error, and fix the request", e);
            logger.info("HTTP Status: " + e.getStatus());
            logger.info("Error Code: " + e.getErrorCode());
            logger.info("Error Message: " + e.getErrorMessage());
        }
    }

    /**
     * 测试
     */
    public static void main(String[] args) {
        pushMsg((jiGuangPushPayloadFuction) -> jiGuangPushPayloadFuction.buildPushObject_all_all_alert("测试"));
        pushMsg((jiGuangPushPayloadFuction) -> jiGuangPushPayloadFuction.buildPushObject_all_alias_alert("alias","测试"));
        pushMsg((jiGuangPushPayloadFuction) -> jiGuangPushPayloadFuction.buildPushObject_android_tag_alertWithTitle("tag", "alert", "title"));
    }
}

 

SpringBoot服务端集成极光推送 1. 添加依赖 <!-- 极光推送 --> <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jpush-client</artifactId> <version>3.4.6</version> </dependency> <!--<dependency>--> &lt 阅读详情

相关推荐

springboot整合极光推送

转载请表明出处 谢谢 springboot整合极光推送准备pomyml工具类 准备 官网 先注册登录,并创建应用 pom <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jsms-client</artifactId> <version>1.2.9</version> .

SophiaLeo的博客 1129

springboot+APPcan集成极光推送,实现APP消息推送

实现过程: 从APP端集成极光推送插件,启动时调用方法获取极光推送返回的registrationId,登录时传入后台保存在数据库里,后台服务集成极光的java版SDK封装自己常用的推送服务方法的服务类,即可实现消息推送。 一、APP后台服务springboot 部分的代码 修改POM文件,引入集成的极光推送java版SDK所需要的包 <!-- 极光...

qianyel的专栏 1162

ANSYS APDL生死单元实战:焊接模拟从入门到精通(附完整命令流)

本文详细介绍了使用ANSYS APDL进行焊接模拟的核心技术——生死单元法。通过一个完整的平板对接焊案例,从原理剖析、模型搭建、命令流编写到移动热源施加和后处理,手把手指导工程师掌握这一动态仿真方法,有效预测焊接过程中的温度场、残余应力与变形。

k6l7m8n9的博客 150

【SpringBoot】在SpringBoot中如何使用 极光推送

简单记录一下在SpringBoot中实现极光推送的步骤和程序代码。

peng_YuJun的博客 2012

VN5620硬件接口介绍

VECTOR, VN5620, 诊断

Fecostar的博客 7473

25年PINN创新点大盘点!

在科研论文的激烈角逐中,想轻松产出高含金量成果?物理信息神经网络(PINN)堪称“宝藏研究方向”,是冲击高分区论文的绝佳赛道!对于渴望发表优质论文的科研伙伴,这三大研究路径值得重点关注。首先是自适应PINN,在PINN训练过程中,物理方程与实测数据间的矛盾常常导致权重调节困难,而恰好直击这一痛点,是极具价值的研究方向。其次,同样前景广阔,传统多物理场同时训练效果欠佳,如今分阶段训练方法脱颖而出,成效显著且竞争较小。最后,探索及多任务学习等技术的融合,能实现优势叠加,碰撞出创新火花。

Malaai的博客 1970

Spring boot 集成 极光推送

Spring boot 集成 极光推送 1. 注册极光推送账号 在官网首页注册登录 在我的图标下面,点击 服务中心 进入 找到开发者平台 进入 进入开发者应用运营平台 2. 创建应用 填写应用名称 点击确认 点击下一步 设置应用包名,并点击下一步 点击下载推送demo,安装在手机上 3. 获取应用的AppKey 和 Master Secret 在设置里面,找到对应app的 appkey 和 Master Secret 4. 创建springboot应用 在idea中创建Springboo

weixin_42553198的博客 963

pikachu靶场: 暴力破解第四关(token防爆破)

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个 Token 同时将此 Token 返回给客户端。此外,Token 是有时效的,一段时间之后或下一次请求时用户需要重新验证。

X_shiguang的博客 1720

SpringBoot集成极光推送(第三方)

推送消息

m0_55841258的博客 1218

从零到一:手把手教你用YonBuilder for NCC搭建NC Cloud 2021.11开发环境(含避坑指南)

本文详细指导如何使用YonBuilder for NCC搭建NC Cloud 2021.11开发环境,涵盖硬件要求、软件安装、YonBuilder配置及常见故障排除。特别提供避坑指南,帮助开发者快速上手NCC开发,确保环境配置的原子化分解和开发思维的体系化建立。

weixin_42523326的博客 341

Matlab+Matpower实战:手把手教你生成IEEE14节点FDIA攻击数据集(附完整代码)

本文提供了一份基于Matlab与Matpower工具构建IEEE14节点FDIA攻击数据集的完整实战指南。通过动态负荷数据模拟、潮流计算、状态估计及隐蔽攻击向量注入,手把手教你生成可用于电力系统网络安全研究的仿真数据集,并附有核心代码与调试技巧。

bean的博客 397

极光推送工具类-指定用户(根据设备别名)极光推送

/** * 指定用户(根据设备别名)极光推送 * 极光官方文档 极光推送 - Push API v3 - 极光文档 * @param message(消息内容体-推送alert的消息) * @param to (通知内容体) * @param type(定义类型,供用户收到推送后点击跳转到指定页面) * @param param(跳转到指定页面需要的参数,可定义为json字符串格式) * @param token (推送接收方设备别名) * @return */ public Resul...

从改变自己开始 1138

使用 MATLAB/Simulink + Simscape Electrical + Simulink Design Optimization,构建一个基于SiC/GaN的Z源逆变器在储能系统中的软启

《手把手教你学Simulink:Z源逆变器在储能系统中的应用》摘要 本文详细介绍了使用MATLAB/Simulink构建Z源逆变器储能系统仿真模型的全过程。Z源逆变器凭借其独特的阻抗网络结构,解决了传统逆变器在直通保护和升压能力方面的痛点。文章通过6个关键步骤:主电路搭建、调制策略设计、软启动实现、仿真分析、效率对比和工程问题解决方案,完整展示了Z源逆变器从理论到仿真的实现路径。重点讲解了直通零矢量SPWM调制策略和渐进式升压比控制方法,验证了系统93.3%的效率和优异的抗扰性能。该模型为光伏储能、电动汽车

MHD0815的博客 122

极光推送向指定的某个用户推送内容

之前的项目跟推送有关的,我一直使用的都是极光推送,集成非常简单,只要按照官方文档的步骤一步步的进行,基本就没有什么问题。但是这个项目因为要向个人推送消息,而之前的推送都是以广播的方式向所有人推送内容。继续查阅文档发现: 提供几个相关 API 用来设置别名(alias)与标签(tags)。 这几个 API 可以在 App 里任何地方调用。 别名 alias为安装了应用程序的用户,取个别名来标识。

IOS_ZhuJianan的博客 1万+

RT-DETR改进策略【注意力机制篇】| 2024 PPA 并行补丁感知注意模块,提高小目标关注度

本文记录的是利用改进检测精度,详细说明了优化原因,注意事项等。原论文在红外小目标检测任务中,小目标在多次下采样操作中容易丢失关键信息。通过替代编码器和解码器基本组件中的传统卷积操作,更好地保留小目标的重要信息。HCF-Net: Hierarchical Context Fusion Network for Infrared Small Object Detection采用多分支特征提取策略,通过不同分支提取不同尺度和层次的特征。利用局部、全局和串行卷积分支,对输入特征张量进行处理。通过控制 patch si

Limiiiing的博客 1646

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

springBoot集成极光 app消息推送

极光推送一直以来提供了“广播”、“标签(tag)”、“别名(alias)”和“registration_id”等多种推送方式,这几种推送方式正确使用场景如下: 如果您希望一条推送能发给您 App 下的全量用户,建议您使用“广播”;参考:怎么样广播推送? 如果您希望一条推送能批量推送给具有相同属性的一群用户,建议您使用“标签(tag)”推送;参考:怎么样向指定的一群用户推送消息? 如果您希望一条推送只针对指定的某一个用户推送,则您可以选择“别名(alias)”或者“registration_id”推送.

qq_29766917的博客 2616

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

极光推送指定用户推送_SpringBoot 集成 极光消息推送

最近App需要集成消息推送,公司最终采用了极光,做一下工具类,可以直接粘贴使用极光官方文档:https://docs.jiguang.cn//jpush/server/server_sdk/maven 包 cn.jpush.api jpush-client 3.4.6工具类:1.函数接口import cn.jpush.api.push.model.Message;import c...

weixin_39708854的博客 270

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Spring Boot 集成极光推送(JPush)完整教程

本文从依赖引入,到推送客户端初始化,再到 iOS/Android 推送实现,提供了一个可以直接运行的 Spring Boot 极光推送服务封装。你可以直接在业务中调用:推送 Android 用户推送 iOS 用户携带扩展字段 extras批量分段推送(<=800)完全满足大多数移动端推送业务需求。

2203_75778295的博客 721

极光推送应用

与SpringBoot的集成 pom.xml: &lt;!-- 极光推送 --&gt; &lt;dependency&gt; &lt;groupId&gt;cn.jpush.api&lt;/groupId&gt; &lt;artifactId&gt;jpush-client&lt;/artifactId&gt; &lt;version&gt;3.3.4&lt

往事随风的博客 318

极光推送(JPush)快速上手教程(Java 后端 + 全平台适配)

本文详细介绍了极光推送从配置到开发的完整流程。主要内容包括:1)极光账号注册与核心参数获取;2)服务端Java SDK集成与推送工具类封装,支持单推/批量推送;3)Android客户端集成与消息接收处理;4)测试验证方法与常见问题排查。重点强调通过员工ID作为别名实现精准推送,并提供生产环境优化建议,如频率控制、异常重试等。整个流程1-2小时可完成,适用于员工周年祝福等场景推送需求。

WF_YL的博客 2038

java集成极光推送实现Android的消息推送

1、极光推送的思路就是,每一个app都有一个AppKey和Master Secret,这两个值是唯一的,也就是用来标识App的唯一信息,具体怎么获取,去看极光推送官网文档,这里就不在讲解。我们在极光开发者上创建好了一个测试App后,设置好这两个值,就可以获取到如下信息。 2、此时我们已经获取到了AppKey和Master Secret,下面就是使用java代码实现消息推送功能。我这里采用S...

毅呀毅呀哟 2852

SpringBoot整合极光推送

一. 极光推送代码 1. maven依赖 <!--极光推送--> <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jpush-client</artifactId> <version>3.2.9</version&...

AkiraNicky的博客 1万+

springboot 极光消息推送

1.pom.xml <!--极光推送--> <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jpush-client</artifactId> <version>3.4.6</version> </dependency> 2.JpushUtils.java import cn.jiguang.co

战国墨竹的博客 731

uniapp极光推送、java服务端集成

​。

何时林听@ 2586

极光推送 前端react native 后端springboot 集成Java SDK

前言: 我也算是第一次接触极光,我想实现的功能是及时通知到用户,有人给他点赞、留言。后来我就选择了极光推送。 其实点击到文档中心,会看到许多极光的服务,如 统一消息系统、极光推送、极光短信。我肯定选择极光推送的文档。 官方极光推送文档:极光文档 一、快速开始:下载 demo ,测试消息推送 具体步骤,在极光推送文档有,我不赘述,只留下值得注意的问题。 注意:小米手机由于有 MIUI保护,所以测试极光推送时,看不到消息,需要关闭MIUI 具体步骤:设置--》更多设置--》开发者选项--》关闭

tengyuxin的博客 1577

android 极光推送1011,SpringBoot服务端集成极光推送

1. 添加依赖cn.jpush.apijpush-client3.4.62. 推送工具类/*** create by 星航指挥官* create on 2020/11/22* 不过是大梦一场空* 不过是孤影照惊鸿*/public class JpushUtils {// 设置app_key和masterSecretprivate static String APP_KEY = "71e7432cf...

weixin_42437067的博客 377
上一篇: MAC 安装 CentOS虚拟机
下一篇: docker 安装 MongoDB 就是这么简单?
97牛肉面
博客等级 码龄9年 54粉丝 75原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值