目录

一、引入maven依赖

二、极光推送工具类 JPushUtil

三、调用工具类

四、遇到问题

开发移动端app时,需要系统进行即时通讯、消息通知提醒,这时候就用到了:极光推送

我这里使用的是springboot简单贴下代码

原文找不到了~~,东拼西凑的整理一篇完整的,已经测试过了,直接用就OK了

一、引入maven依赖

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

二、极光推送工具类 JPushUtil

APP_KEY,MASTER_SECRET:需要去极光推送官网,注册个人开发者,创建推送应用获取到密钥。

 极光推送工具类:我这边是根据和移动端约定的别名alias来推送消息的。

小伙伴们需要发送all,android,ios,等用户直接修改Platform,还可以根据rid,alias等来进行约定的推送目标,直接修改Audience。

还有其他需要,可以浏览极光官方文档作相应的修改。传送:极光文档

package com.xyhsoft.ygt.yqjj.web.utils;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.IosNotification;
import cn.jpush.api.push.model.notification.Notification;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;import java.util.Map;/*** 极光推送工具类* @Author stx* @Date 2022/8/18/0018 16:08*/
@Slf4j
@Component
public class JPushUtil {@Value("${jPush.app-key}")private String APP_KEY;@Value("${jPush.master-secret}")private String MASTER_SECRET;//极光推送>>All所有平台public void jPush(Map<String,String> param) {//创建JPushClientJPushClient jpushClient = new JPushClient(MASTER_SECRET,APP_KEY);//创建optionPushPayload payload = PushPayload.newBuilder().setPlatform(Platform.all())  //所有平台的用户.setAudience(Audience.alias(param.get("alias"))).setNotification(Notification.newBuilder().addPlatformNotification(IosNotification.newBuilder() //发送ios.setAlert(param.get("msg")) //消息体.setBadge(+1).setSound("happy") //ios提示音.addExtras(param) //附加参数.build()).addPlatformNotification(AndroidNotification.newBuilder() //发送android.addExtras(param) //附加参数.setAlert(param.get("msg")) //消息体.setTitle(param.get("title")).build()).build()).setOptions(Options.newBuilder().setApnsProduction(true).build())//指定开发环境 true为生产模式 false 为测试模式 (android不区分模式,ios区分模式).setMessage(Message.newBuilder().setMsgContent(param.get("msg")).addExtras(param).build())//自定义信息.build();try {PushResult pushResult = jpushClient.sendPush(payload);log.info("-----------------[极光推送]PushResult result is " + pushResult);} catch (APIConnectionException e) {e.printStackTrace();} catch (APIRequestException e) {e.printStackTrace();}}
}

三、调用工具类

调用工具类实现接口功能的时候,一定要自己先行下载推送demo,或者与web端约定rid或alias等值,不然测试会报出code:1011。

package com.xyhsoft.ygt.yqjj.web.jiguang;import com.xyhsoft.ygt.yqjj.web.utils.JPushUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;
import java.util.Map;/*** @Author stx* @Date 2022/8/18/0018 16:08*/
@RestController
@RequestMapping("/jPush")
@Api(value = "呼叫医院-极光推送",tags = "呼叫医院-极光推送")
public class JPushController {@Autowiredprivate JPushUtil jPushUtil;@GetMapping("/jPushAll")@ApiImplicitParams({@ApiImplicitParam(name = "alias", value = "jPush推送别名", dataType = "String",required = true),@ApiImplicitParam(name = "status", value = "通话请求状态", dataType = "String",required = true)})public void jPushAll(@RequestParam("alias")String alias, @RequestParam("status")int status){//设置推送参数Map<String,String> param = new HashMap();if (status==0) {param.put("msg", "对方已接受");param.put("title", "呼叫请求");param.put("alias", alias);jPushUtil.jPush(param);}if (status==1) {param.put("msg", "对方已拒绝");param.put("title", "呼叫请求");param.put("alias", alias);jPushUtil.jPush(param);}}
}

四、遇到问题

引入maven的时候,可能会遇到引入的mave依赖中有jar包冲突

测试报出code代码值1011:没有满足条件的推送目标;1004:检查 Appkey 与 MasterSecret等。

Java实现极光推送相关推荐

  1. java 集成极光推送

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

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

    1.极光推送的思路就是,每一个app都有一个AppKey和Master Secret,这两个值是唯一的,也就是用来标识App的唯一信息,具体怎么获取,去看极光推送官网文档,这里就不在讲解.我们在极光开 ...

  3. 极光推送java demo_极光推送- 3 分钟 Demo - 极光文档

    3 分钟快速使用 JPush Android Demo 本文目的在于,指导新接触极光推送的开发者,在短短几分钟时间内把极光推送跑起来: 安装 Demo 客户端到手机 在 Portal 上推送通知 客户 ...

  4. java集成极光推送(仅仅极光注册Id字段发送)

    添加依赖 在pom.xml文件的<dependencies></dependencies>标签中,加入下面依赖,且刷新依赖 <!-- 使用极光推送的jar包 --> ...

  5. 极光推送 java api_JPush极光推送Java服务器端API

    方法名称参数列表(必须)方法说明 setEnableSSL boolean enableSSL (true为使用ssl, 默认为不使用ssl) 是否启动ssl安全连接 sendNotification ...

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

    转载自 https://www.cnblogs.com/V1haoge/p/6439313.html 原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge ...

  7. java极光推送实例

    在用java进行极光推送的时候,需要的一个工具类: 使用的时候,直接调用 sendToRegistrationId 方法,传入参数. package com.mimacx.util;import cn ...

  8. 使用极光推送发送短信验证码

    发送短信验证码 1.获取AppKey和Master Secret 2.设置短信模板和短信签名 3.开始服务端接口的实现 1.获取AppKey和Master Secret 首先应有一个极光推送官网的账号 ...

  9. 极光推送集成APP和web服务

    一.申请极光账号 1.极光地址:https://www.jiguang.cn/push 2.创建极光平台服务应用. 二.配置web端服务 1.导jar <dependency><gr ...

  10. java服务端的 极光推送

    项目中用到了极光推送  下面写下笔记 首先引入jar包   下载地址https://docs.jiguang.cn/jpush/resources/(非maven项目的下载地址) <depend ...

最新文章

  1. JSR303(Bean Validation 1.0)
  2. python tuple list_草根学Python(三)List 和 Tuple
  3. Linux配置ssh无密码验证,rsync
  4. iphone11什么时候上市_hd3手表高仿哪里买 什么时候上市?
  5. python对初学者的看法_python学习之道(1)——新手小白对print()函数的理解,Python,之路,一,浅谈...
  6. 比较list集合相等的方法
  7. pdf不支持64位浏览器_4MLinux 31.0 发布,不支持32位
  8. stm32代码_MATLAB(STM32MATTARGET) 自动生成STM32工程代码
  9. Android-广播
  10. python 生成器_彻底理解 Python 生成器
  11. 中职组“网络空间安全赛项”linux安全加固
  12. 学籍成绩管理系统c语言,学籍成绩管理系统UCDOS操作系统下C语言版本课程设计).doc...
  13. 【转】基于知识图谱的推荐系统(KGRS)综述
  14. Go 编程语言官方文档中文版和官方教程中文版
  15. JS常用字符串方法复习
  16. 会话管理:Cookie和Session
  17. 解决前端做excel下载的文件打不开
  18. html5定义页脚的标签,HTML中footer标签的使用方法
  19. IntelliJ IDEA 中如何查看一个类的所有继承关系,包括父类与子类
  20. c++小组实践大作业——面包星推荐

热门文章

  1. 简单使用Jconsole
  2. 游戏是怎么赚钱的 - 科普篇
  3. android手机如何查看系统版本号,怎么查看安卓系统版本
  4. 百度识图API教程一:使用百度api识别物体
  5. Win10下windows mobile device center设备中心连接不上无法启动
  6. 怪物刷新时间计时_《冒险岛2》游戏中查找怪物刷新时间
  7. 浏览器与WEB服务器的网络协议
  8. ROS动态IP端口映射
  9. 重置网络后HD不显示的逆推
  10. Android Apk反编译 dex2j遇到如下问题 com.googlecode.d2j.DexException: not support version.