Java 使用第三方推送 -- 极光推送
极光官网链接 : https://www.jiguang.cn/
Java后端的整合如下:
1 2 3 4 5 6 7 8 9 10 | <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jpush-client</artifactId> <version> 3.4 . 2 </version> </dependency> <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jiguang-common</artifactId> <version> 1.1 . 3 </version> </dependency> |
创建一个工具类 JiGuangPushUtil.java
package com.zy.cm.common.core.util; 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.notification.AndroidNotification; import cn.jpush.api.push.model.notification.IosAlert; import cn.jpush.api.push.model.notification.IosNotification; import cn.jpush.api.push.model.notification.Notification; import java.util.HashMap; import java.util.List; import java.util.Map; public class JiGuangPushUtil { /** * 两个参数分别填写你申请的masterSecret和appKey## */ private static String masterSecret = "你的masterSecret"; private static String appKey = "你的appKey"; private static JPushClient jPushClient=new JPushClient(masterSecret,appKey); /** * 全平台推送 * @param parm map里面可以根据自身情况增加一些参数 比如页面跳转的地址等 * @param list 用户id集合 这里我们是以用户id作为别名的方式注册到极光 所以我们只需要把用户id给极光 他就会直接给对应用户推送 */ public static void jpushAll(Map<String, String> parm,List<String> list) { PushPayload payload = PushPayload.newBuilder() //所有平台的用户 .setPlatform(Platform.all()) //指定用户 .setAudience(Audience.alias(list)) .setNotification(Notification.newBuilder() //ios推送 .addPlatformNotification(IosNotification.newBuilder() .setAlert(IosAlert.newBuilder().setTitleAndBody(parm.get("title"),null,parm.get("body")).build()) .setBadge(+1) .setSound("qxgf") .addExtras(parm) .build()) //Android推送 也可以分开写 .addPlatformNotification(AndroidNotification.newBuilder() .setTitle(parm.get("title")) .addExtras(parm) .setAlert(parm.get("body")) .build()) .build()) //指定开发环境 .setOptions(Options.newBuilder().setApnsProduction(false).build()) //自定义信息 .setMessage(Message.newBuilder().setMsgContent(parm.get("title")).addExtras(parm).build()) .build(); try { PushResult pushResult = jPushClient.sendPush(payload); System.out.println(pushResult); if(pushResult.getResponseCode()==200){ System.out.println(pushResult.getResponseCode()); } } catch (APIConnectionException e) { e.printStackTrace(); } catch (APIRequestException e) { e.printStackTrace(); } } /** * 参数设置 * @param title * @param body * @param list 用户集合 */ public static void jpushPush(String title, String body, List<String> list){ Map<String, String> parm = new HashMap<>(); //标题 parm.put("title",title); //内容 parm.put("body",body); JiGuangPushUtil.jpushAll(parm,list); } }
最后哪里使用在哪里直接调用:
JiGuangPushUtil.jpushPush(MedicalConstant.System_Schedule,body,list);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通