技术交流QQ群:422167709 想学习的朋友可以进入,各路IT大牛帮忙解决问题

一、准备工作:

1.访问极光推送官网:https://www.jiguang.cn/accounts/login/form

2.注册登陆,拿到appKey和masterSecret

3.创建一个应用,安卓需要自己配置自己的设备ios一样的,服务端加上访问前缀和前端相对应即可。

二、工具类直接测试推送是否成功。

 package com.hykj.common;

 import cn.jiguang.common.resp.APIConnectionException;
import cn.jiguang.common.resp.APIRequestException;
import cn.jpush.api.JPushClient;
//import cn.jpush.api.common.resp.APIConnectionException;
//import cn.jpush.api.common.resp.APIRequestException;
import cn.jpush.api.push.PushResult;
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 org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import com.fasterxml.jackson.databind.ser.std.StdKeySerializers.Default; import java.util.HashMap;
import java.util.Map; /**
*
* @Description:极光推送工具类
* @author: fuzongle
* @date: 2019年5月7日 下午9:55:02
*/
@Controller
@RequestMapping(value="/jpush")
public class JPushClientUtil{ private static final String appKey = ""; // 必填,例如466f7032ac604e02fb7bda89
private static final String masterSecret = "";//必填,每个应用都对应一个masterSecret private static final String appKey2 = ""; // 必填,例如466f7032ac604e02fb7bda89
private static final String masterSecret2 = "";//必填,每个应用都对应一个masterSecret /
private static JPushClient jpush = null;
public static final int MAX = Integer.MAX_VALUE;
public static final int MIN = MAX / 2;
/**
* 保存离线的时长。秒为单位。最多支持10天(864000秒)。
* 0 表示该消息不保存离线。即:用户在线马上发出,当前不在线用户将不会收到此消息。
* 此参数不设置则表示默认,默认为保存1天的离线消息(86400秒)。
*/
private static long timeToLive = 60 * 60 * 24;
public static void main(String[] args) {
String msgTitle = "推送测试";
String msgContent = "看到信息了么,看到就推送成功了!";
//String tel_phone="18516779543";
String tel_phone="15937016361";
Map<String,String> extra = new HashMap<String, String>();
extra.put("number","CO2017082811195687100");
extra.put("type","money");
push("JLY"+tel_phone,msgTitle,extra,0);
/* String title = "推送测试";
PushPayload payload = JPushClientUtil.buildPushObject_all_all_alert(title);
System.out.println("服务器返回数据:" + payload.toString());*/
}
/**
* 所有平台,所有设备,内容为 content 的通知
*
* @param content
* @return
*/
public static PushPayload buildPushObject_all_all_alert(String content) {
return PushPayload.alertAll(content);
} /**
* 生成极光推送对象PushPayload(采用java SDK)
* @param alias
* @param alert
* @return PushPayload
*/
public static PushPayload buildPushObject_android_ios_alias_alert(String alias,String alert,
Map<String,String> extra,int value,String sound){
return PushPayload.newBuilder()
.setPlatform(Platform.android_ios())
.setAudience(Audience.alias(alias))
.setNotification(Notification.newBuilder()
.addPlatformNotification(AndroidNotification.newBuilder()
.addExtras(extra)
.setAlert(alert)
.build())
.addPlatformNotification(IosNotification.newBuilder()
.addExtras(extra)
.setAlert(alert)
.setBadge(value)
.setSound(sound)
.build())
.build())
.setOptions(Options.newBuilder()
.setApnsProduction(false)//true-推送生产环境 false-推送开发环境(测试使用参数)
.setTimeToLive(90)//消息在JPush服务器的失效时间(测试使用参数)
.build())
.build();
} /**
* 极光推送方法(采用java SDK)
* @param alias
* @param alert
* @return PushResult
*/
public static PushResult push(String alias, String alert, Map<String,String> extra,int type){
PushResult pushResult = null;
if (type==0){
JPushClient jpushClient = new JPushClient(masterSecret, appKey,3);
PushPayload payload = buildPushObject_android_ios_alias_alert(alias,alert,extra,1,"default");
try {
pushResult = jpushClient.sendPush(payload);
if(pushResult.isResultOK()){
System.out.println("ok");
}
} catch (APIConnectionException e) {
e.printStackTrace();
return null;
} catch (APIRequestException e) {
e.printStackTrace();
return null;
}
}else if (type==1){
JPushClient jpushClient = new JPushClient(masterSecret2, appKey2,3);
PushPayload payload = buildPushObject_android_ios_alias_alert(alias,alert,extra,1,"default");
try {
pushResult = jpushClient.sendPush(payload);
} catch (APIConnectionException e) {
e.printStackTrace();
return null;
} catch (APIRequestException e) {
e.printStackTrace();
return null;
}
// }else if (type==2){
// JPushClient jpushClient = new JPushClient(masterSecret3, appKey3,3);
// PushPayload payload = buildPushObject_android_ios_alias_alert(alias,alert,extra);
// try {
// pushResult = jpushClient.sendPush(payload);
// } catch (APIConnectionException e) {
// e.printStackTrace();
// return null;
// } catch (APIRequestException e) {
// e.printStackTrace();
// return null;
// }
// }
}
return pushResult; } /**
* 给多个人推送消息
* @param list
*/
/*public static void pushManyMessage(List<PageData> list){ for(int i=0;i<list.size();i++){
pushMessage(
list.get(i).get("msgTitle").toString(),
list.get(i).get("msgContent").toString(),
list.get(i).get("user_id").toString()
);
} }*/ /**
* 保持 sendNo 的唯一性是有必要的
*/
public static int getRandomSendNo() {
return (int) (MIN + Math.random() * (MAX - MIN));
} }

java-极光推送教程的更多相关文章

  1. java 极光推送

    Web.xml配置文件 <context-param> <param-name>contextConfigLocation</param-name> <par ...

  2. java极光推送记录

      1. 添加poom依赖: <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jigu ...

  3. 1、Android Studio集成极光推送(Jpush) 报错 java.lang.UnsatisfiedLinkError: cn.jpush.android.service.PushProtoco

    Android studio 集成极光推送(Jpush) (华为手机)报错, E/JPush: [JPushGlobal] Get sdk version fail![获取sdk版本失败!] W/Sy ...

  4. 极光IM使用教程-极光推送

    链接地址:http://jingyan.baidu.com/article/a948d65178a6ea0a2ccd2e7e.html 极光IM使用教程,如果您的 App 需要同时集成 Push 功能 ...

  5. JPush极光推送 Java调用服务器端API开发

       极光推送是:使得开发者可以即时地向其应用程序的用户推送通知或者消息,与用户保持互动,从而有效地提高留存率,提升用户体验.简单的说就是通过JPush后台管理网站进行app消息的推送.可以让用户及时 ...

  6. 极光推送-Java后台实现方式一:Http API

    Java后台实现极光推送有两种方式,一种是使用极光推送官方提供的推送请求API:https://api.jpush.cn/v3/push,另一种则是使用官方提供的第三方Java APIjar包,这里先 ...

  7. Xamarin 使用极光推送 详细教程

    源码下载地址:http://download.csdn.net/download/kendocross/8677263  有兴趣的看以去看看 一.首先新建一个Xamarin.Android 项目,过程 ...

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

    原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/6439313.html Java后台实现极光推送有两种方式,一种是使用极光推送官方提供的推送请 ...

  9. 极光推送JAVA代码示例

    一. 准备工作 1. 登录极光推送官网https://www.jpush.cn/,注册账号并登录 2. 创建应用 创建应用过程,详见百度经验:http://jingyan.baidu.com/arti ...

  10. 极光推送>>java SDK服务端集成后台项目(使用详解)

    PS:如果你是第一次用推送,那就直接按照我的步骤来,再去看官方文档,这样,更容易能理解操作流程.还有——-请耐心看 极光文档(java SDK)请参考 [ 极光文档 ] 步骤一: 首先,你必须在 [极 ...

随机推荐

  1. SLAM方向国内有哪些优秀公司?

    计算机视觉life为读者整理了国内几十家涉及SLAM的优秀公司,涵盖自动驾驶.仓储机器人.服务机器人.无人机.AR.芯片相机等领域. 一 自动/辅助驾驶: 1.百度: 主要产品:自动驾驶软件 百度智能 ...

  2. HDU 4819:Mosaic(线段树套线段树)

    http://acm.hdu.edu.cn/showproblem.php?pid=4819 题意:给出一个矩阵,然后q个询问,每个询问有a,b,c,代表(a,b)这个点上下左右c/2的矩形区域内的( ...

  3. WebLogic 任意文件上传远程代码执行_CVE-2018-2894漏洞复现

    WebLogic 任意文件上传远程代码执行_CVE-2018-2894漏洞复现 一.漏洞描述 Weblogic管理端未授权的两个页面存在任意上传getshell漏洞,可直接获取权限.Oracle 7月 ...

  4. Object.keys使用整理

    一.语法 Object.keys(obj) 参数:要返回其枚举自身属性的对象 返回值:一个表示给定对象的所有可枚举属性的字符串数组 二.处理对象,返回可枚举的属性数组 let person = { n ...

  5. Java 内存映射文件

    import java.io.*; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import jav ...

  6. .NET CORE上传文件到码云仓库【搭建自己的图床】

    .NET CORE上传文件到码云仓库[搭建自己的图床] 先建一个公共仓库(随意提交一个README文件或者.gitignore文件保证master分支的存在),然后到gitee的个人设置页面找到[私人 ...

  7. BI之路学习笔记2--SSIS/ETL设计练习三:《DB->定期生成excel表》

    上次笔记记到,用sql任务给参数赋值,映射到变量,然后把数据流任务放到序列容器中进行执行,可以定期生成excel, 现在的问题是: 在EXCEL目标编辑过程中,必须选定某一个特定的excel目标,这样 ...

  8. vs项目依赖项黄色感叹号解决方案

    右键项目解决方案,生成解决方案或重新生成解决方案,黄色感叹号消失,依赖项生效,亲测有效

  9. TensorFlow高效读取数据的方法——TFRecord的学习

    关于TensorFlow读取数据,官网给出了三种方法: 供给数据(Feeding):在TensorFlow程序运行的每一步,让python代码来供给数据. 从文件读取数据:在TensorFlow图的起 ...

  10. 宽字符转窄字符CW2AEX<>(szAreaInfo,CP_UTF8)

    CString szAreaInfo; CW2AEX<>(szAreaInfo,CP_UTF8); 最好能像上面这样转换,否则汉字就会转成乱码.