Jpush极光推送教程

1、引入jar包

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

2、Jpush官网申请密钥
3、代码部分

public interface JPushService {Result pushData(Map<String,Object> map);}
@Service
public class JPushServiceImpl extends BaseService implements JPushService {@Value("${jpush.appKey}")private String appKey;@Value("${jpush.masterSecret}")private String masterSecret;@Overridepublic Result checkVaild(Object obj) {return setResult(obj);}/*** 推送数据* @param map* @return*/@Overridepublic Result pushData(Map<String,Object> map) {if(map == null){return setResult("controller1001");}return sendToAll(map.get("content"),String.valueOf(map.get("registrationId")));}/*** 发送给所有Android用户*/public PushResult sendToAndroid(String content, String title, Map<String, String> extras) {JPushClient pushClient = new JPushClient(masterSecret, appKey);PushPayload payload = PushPayload.newBuilder().setPlatform(Platform.android()).setAudience(Audience.all()).setNotification(Notification.android(content, title, extras)).build();try {return pushClient.sendPush(payload);} catch (APIConnectionException | APIRequestException e) {e.printStackTrace();}return null;}/*** 发送给所有Ios用户*/public PushResult sendToIos(Object alert, Map<String, String> extras) {JPushClient pushClient = new JPushClient(masterSecret, appKey);PushPayload payload = PushPayload.newBuilder().setPlatform(Platform.ios()).setAudience(Audience.all()).setNotification(Notification.ios(alert, extras)).build();try {return pushClient.sendPush(payload);} catch (APIConnectionException | APIRequestException e) {e.printStackTrace();}return null;}/*** 发送给所有用户*/public Result sendToAll(Object alert,String registrationId) {System.out.println(masterSecret+" = "+appKey);JPushClient pushClient = new JPushClient(masterSecret, appKey);PushPayload payload = PushPayload.newBuilder().setPlatform(Platform.all()).setAudience(Audience.registrationId(registrationId)).setNotification(Notification.alert(alert)).build();try {return setResult(pushClient.sendPush(payload));} catch (APIConnectionException | APIRequestException e) {return setResult(-1,"error", JSONObject.parse(e.getMessage()));}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/29319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

低压电器航空插座端子

低压电器航空插座的定义和功能 低压电器航空插座通常指在交流电压1200V或直流电压1500V以下工作的电器&#xff0c;其主要功能是连接或断开电路&#xff0c;以实现对电路或非电对象的切换、控制、保护、检测、变换和调节。航空插座具有多种芯数和配置&#xff0c;例如2芯、3芯…

Web前端教程PPT:深入浅出引领您掌握前端技术

Web前端教程PPT&#xff1a;深入浅出引领您掌握前端技术 在数字化时代&#xff0c;Web前端技术成为了构建精美网页和高效应用的基石。为了帮助初学者系统地掌握前端技术&#xff0c;本文将以PPT的形式&#xff0c;从四个方面、五个方面、六个方面和七个方面&#xff0c;为您呈…

面试又被HR压薪了?知道压薪的真实原因,才能拿到“高“薪!

​你面试被讨价还价过吗&#xff1f; 人事A&#xff1a; 您在这方面的经验还不是很丰富&#xff0c;您在之前的公司做的项目不是主要负责人&#xff0c;是辅助角色&#xff0c;所以工资方面我们准备给..(低于你的期望) 人事B&#xff1a; 您之前的岗位和我们需要的岗位不同&…

2288. 价格减免

题目 给定一个字符串列表 sentence&#xff0c;表示一个句子&#xff0c;其中每个单词可以包含数字、小写字母和美元符号 $。如果单词的形式为美元符号后跟着一个非负实数&#xff0c;那么这个单词就表示一个价格。我们需要在价格的基础上减免给定的 discount%&#xff0c;并更…

工具链 之 Vite 常见的共享选项配置(二)

这些配置通常包括插件、别名、CSS 预处理器设置。 1. 插件&#xff08;Plugins&#xff09; 插件是 Vite 生态系统中的核心部分&#xff0c;用于扩展 Vite 的功能。一些插件&#xff08;如 vitejs/plugin-vue 对于 Vue 项目&#xff09;是项目所必需的&#xff0c;并且在所有环…

原生APP开发的技术难点

原生APP开发是一项复杂的技术工作&#xff0c;需要掌握多种编程语言和技术。原生APP开发的技术难点主要体现在以下几个方面&#xff0c;原生APP开发是一项技术难度较高的工作&#xff0c;需要开发者具备扎实的编程基础和丰富的开发经验。北京木奇移动技术有限公司&#xff0c;专…

Pycharm怎么默认终端连接远程服务器

因为经常需要从宿舍到学校内通勤&#xff0c;期间所有连接都会中断&#xff0c;所以每次开SSH特别麻烦&#xff0c;每次终端自动切换到本地&#xff1a; 每次都得点一下Start SSH Session 想要默认终端连接远程服务器&#xff0c;需要点File->Setting->Tools->SSH T…

Python - 一个恶意脚本

Python - 恶意脚本 使用此脚本或修改前请注意以下几点&#xff1a; 系统资源&#xff1a;大量模拟键盘和鼠标事件可能会占用大量系统资源&#xff0c;会导致其他应用程序运行缓慢或崩溃。 隐私和安全&#xff1a;如果此脚本在未经用户同意的情况下运行&#xff0c;它可能侵犯…

铺地地毯B1级防火检测 隔断板A1阻燃测试 氧指数检测

铺地地毯B1级防火检测 铺地地毯的B1级防火检测是指按照国家标准GB 8624-2012《建筑材料及制品燃烧性能分级》进行的测试&#xff0c;该标准将建筑材料及制品的燃烧性能分为A、B1、B2、B3四个等级。B1级表示难燃材料&#xff0c;具有较好的阻燃作用&#xff0c;在空气中遇明火或…

泛微E9开发 查询页面添加按钮,完成特定功能

查询页面添加按钮&#xff0c;完成特定功能 1、关联知识&#xff08;查询页面实现新增按钮&#xff09;2、功能实现2.1. 点击按钮&#xff0c;输出选中的checkbox的值2.2. 点击按钮&#xff0c;打开一个自定义对话框 3、实现方法 1、关联知识&#xff08;查询页面实现新增按钮&…

如何在不降低网络安全防护的前提下,优化pcdn的流量清洗效率?

在不降低网络安全防护的前提下&#xff0c;优化PCDN的流量清洗效率是一个复杂但至关重要的任务。以下是一些建议&#xff0c;帮助您实现这一目标&#xff1a; 一&#xff0e;升级硬件与网络设备&#xff1a; 投资于高性能的硬件和网络设备&#xff0c;以确保流量清洗过程中的…

【最新鸿蒙应用开发】——总结鸿蒙ArkTS渲染机制

ArkTS三种渲染控制机制 ArkUI通过自定义组件的build()函数和builder装饰器中的声明式UI描述语句构建相应的UI。在声明式描述语句中开发者除了使用系统组件外&#xff0c;还可以使用渲染控制语句来辅助UI的构建&#xff0c;这些渲染控制语句包括控制组件是否显示的条件渲染语句…

【大数据】gRPC、Flink、Kafka 分别是什么?

1. gRPC gRPC&#xff08;Google Remote Procedure Call&#xff09;是一个高性能、开源的远程过程调用&#xff08;RPC&#xff09;框架。它是由Google开发的&#xff0c;支持多种编程语言&#xff0c;并且广泛应用于微服务架构中。以下是gRPC的一些关键特点&#xff1a; 多语…

低代码结合自研项目打包发布

nginx配置 #user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024; }http {include mime.types;default_type applica…

麒麟Kylin | 操作系统的安装与管理

以下所使用的环境为&#xff1a;VMware Workstation 17 Pro、Kylin-Server-10-SP2-x86-Release-Build09-20210524 一、创建虚拟机 在VMware主机单击【创建新的虚拟机】 **在新建虚拟机向导中选择【自定义】&#xff0c;然后点击【下一步】 ** 保持默认选项&#xff0c;然后…

Vue 3 的 Teleport 组件实现跨层级通信

突破组件边界 - 使用 Vue 3 的 Teleport 组件实现跨层级通信 你可能已经熟悉了组件的基本概念:每个组件都是一个独立的单元,拥有自己的模板、样式和逻辑。但是,有时候我们需要在不同层级的组件之间进行交互,这就需要用到 Vue 3 中新引入的 Teleport 组件。 Teleport 组件可以…

CorelDRAW Graphics Suite下载2024最新版-CorelDRAW2024详细安装步骤

CorelDRAW​​ Graphics Suite官方版是款很多用户在工作中都会使用的矢量图形设计工具。CorelDRAW Graphics Suite正式版采用量身定制的界面和无与伦比的定制功能&#xff0c;畅享无缝设计经验。并且CorelDRAW Graphics Suite还可以广泛应用于商标设计、标志制作、模型绘制、插…

LangGraph自适应RAG

LangGraph自适应RAG 介绍索引LLMsweb 搜索工具graphgraph stategraph flowbuild graph执行 介绍 自适应 RAG 是一种 RAG 策略&#xff0c;它将 (1) 查询分析 (2) 主动/自校正 RAG 结合起来。 在文章中&#xff0c;他们报告了查询分析到路由获取&#xff1a; No RetrievalSing…

采用PHP语言(医院安全不良事件上报系统源码)医院不良事件 各类事件分析、分类、处理流程

医疗安全不容忽视&#xff01; 医疗安全&#xff08;不良&#xff09;事件是指在临床诊疗活动中以及医院运行过程中&#xff0c;任何可能影响患者的诊疗结果、增加患者的痛苦和负担并可能引发医疗纠纷或医疗事故&#xff0c;以及影响医疗工作的正常运行和医务人员人身安全的因…

什么是隐马尔可夫模型?

文章目录 一、说明二、玩具HMM&#xff1a;5′拼接位点识别三、那么&#xff0c;隐藏了什么&#xff1f;四、查找最佳状态路径五、超越最佳得分对齐六、制作更逼真的模型七、收获 关键词&#xff1a;hidden markov model 一、说明 被称为隐马尔可夫模型的统计模型是计算生物学…