技术交流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. vue.js 解决跨域问题

    我们调试vue.js代码的时候一般都用chrome, 下载插件 进入chrome应用商店 搜索 重启chrome就可以解决跨域问题

  2. aspnetcore 实现简单的伪静态化

    aspnetcore 实现简单的伪静态化 Intro 在我的活动室预约项目中,有一个公告模块,类似于新闻发布,个人感觉像新闻这种网页基本就是发布的时候编辑一次之后就再也不会改了,最适合静态化了, 静态 ...

  3. SQL Server 2016 + AlwaysOn 无域集群

    目录 AlwaysOn 搭建 WSFC 配置计算机的 DNS 后缀 安装故障转移集群 验证集群 创建集群 创建文件共享见证 配置 AlwaysOn 新建可用性组 创建侦听器 可读副本的负载均衡 主角色 ...

  4. MDX查询SSAS结果--通过adomd.net展示到客户端

    SSAS多维模型建好之后,除了在excel客户端直接链接ssas源拖拽pivot分析使用外,还可以讲要展示的结果集通过MDX语句查询出来,嵌入到程序中,通过运行程序跑出完整的报表.如图所示:

  5. Maven(二)Maven 的基本配置

    Maven 的基本配置 Maven 中仓库的概念 Maven 中的仓库是用拿过来存储所有项目的依赖关系的.当你创建一个 Maven 项目时,Maven 会通过依赖机制先到你本地仓库(自己维护的仓库)中 ...

  6. 【LightOJ - 1370】Bi-shoe and Phi-shoe

    Bi-shoe and Phi-shoe Descriptions: 给出一些数字,对于每个数字找到一个欧拉函数值大于等于这个数的数,求找到的所有数的最小和. Input 输入以整数T(≤100)开始 ...

  7. 和朱晔一起复习Java并发(五):并发容器和同步器

    本节我们先会来复习一下java.util.concurrent下面的一些并发容器,然后再会来简单看一下各种同步器. ConcurrentHashMap和ConcurrentSkipListMap的性能 ...

  8. MYSQL数据库约束类型

    07.14自我总结 MYSQL数据库约束类型 一.主键约束(primary key) 主键约束要求主键列的数据唯一,并且不能为空.主键分为两种类型:单字段主键和多字段联合主键. 1.单字段主键 写法 ...

  9. 2019牛客多校第一场A-Equivalent Prefixes

    Equivalent Prefixes 传送门 解题思路 先用单调栈求出两个序列中每一个数左边第一个小于自己的数的下标, 存入a[], b[].然后按照1~n的顺序循环,比较 a[i]和b[i]是否相 ...

  10. ASP.NET Core 中的管道机制

    首先,很感谢在上篇文章 C# 管道式编程 中给我有小额捐助和点赞的朋友们,感谢你们的支持与肯定.希望我的每一次分享都能让彼此获得一些收获,当然如果我有些地方叙述的不正确或不当,还请不客气的指出.好了, ...