java-极光推送教程
技术交流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-极光推送教程的更多相关文章
- java 极光推送
Web.xml配置文件 <context-param> <param-name>contextConfigLocation</param-name> <par ...
- java极光推送记录
1. 添加poom依赖: <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jigu ...
- 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 ...
- 极光IM使用教程-极光推送
链接地址:http://jingyan.baidu.com/article/a948d65178a6ea0a2ccd2e7e.html 极光IM使用教程,如果您的 App 需要同时集成 Push 功能 ...
- JPush极光推送 Java调用服务器端API开发
极光推送是:使得开发者可以即时地向其应用程序的用户推送通知或者消息,与用户保持互动,从而有效地提高留存率,提升用户体验.简单的说就是通过JPush后台管理网站进行app消息的推送.可以让用户及时 ...
- 极光推送-Java后台实现方式一:Http API
Java后台实现极光推送有两种方式,一种是使用极光推送官方提供的推送请求API:https://api.jpush.cn/v3/push,另一种则是使用官方提供的第三方Java APIjar包,这里先 ...
- Xamarin 使用极光推送 详细教程
源码下载地址:http://download.csdn.net/download/kendocross/8677263 有兴趣的看以去看看 一.首先新建一个Xamarin.Android 项目,过程 ...
- 极光推送经验之谈-Java后台服务器实现极光推送的两种实现方式
原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/6439313.html Java后台实现极光推送有两种方式,一种是使用极光推送官方提供的推送请 ...
- 极光推送JAVA代码示例
一. 准备工作 1. 登录极光推送官网https://www.jpush.cn/,注册账号并登录 2. 创建应用 创建应用过程,详见百度经验:http://jingyan.baidu.com/arti ...
- 极光推送>>java SDK服务端集成后台项目(使用详解)
PS:如果你是第一次用推送,那就直接按照我的步骤来,再去看官方文档,这样,更容易能理解操作流程.还有——-请耐心看 极光文档(java SDK)请参考 [ 极光文档 ] 步骤一: 首先,你必须在 [极 ...
随机推荐
- redis RDB 和AOF
参考文献 Redis源码学习-AOF数据持久化原理分析(0) Redis源码学习-AOF数据持久化原理分析(1) Redis · 特性分析 · AOF Rewrite 分析 深入剖析 redis AO ...
- os.path.join路径拼接的问题
问题一: import os a = os.path.join("/test1", "/test2") print(a) b = os.path.join(&q ...
- QRowTable表格控件-支持hover整行、checked整行、指定列排序等
目录 一.开心一刻 二.嘴一嘴 三.效果展示 四.浅谈实现 五.自定义数据源 1.data函数 2.flags函数 六.自定义视图 1.目的 2.问题分析 七.测试 八.相关文章 原文链接:QRowT ...
- 【攻略】百度货币识别API,搞定防诈骗的应用小程序
1.需求及方案: 近两年用外币进行诈骗的案件很多.例如:2015年12月,一安徽诈骗团伙,用不值1角人民币的50印蒂(intis,秘鲁旧货币,1991年发行新货币后已停止流通,目前无货币价值,仅有&q ...
- 深度解密Go语言之channel
目录 并发模型 并发与并行 什么是 CSP 什么是 channel channel 实现 CSP 为什么要 channel channel 实现原理 数据结构 创建 接收 发送 关闭 channel ...
- [leetcode] 147. Insertion Sort List (Medium)
原题 别人的思路 非常简洁 function ListNode(val) { this.val = val; this.next = null; } /** * @param {ListNode} h ...
- Oculus Rift 没有声音的解决方法
If you do not hear any audio when using Rift, please try the following steps: Check the Rift audio s ...
- Python学习6——再谈抽象(面对对象编程)
1.对象魔法 在面对对象编程中,术语对象大致意味着一系列数据(属性)以及一套访问和操作这些数据的方法. 使用对象而非全局变量以及函数的原因有多个,而最重要的好处不过以下几点: 多态:可对不同类型的对象 ...
- net core 序列化与反序列化与遇到的几个坑
之前在C#里面序列化直接引入命名空间后使用JavaScriptSerializer jss = new JavaScriptSerializer();就可以用, 而net core里面不这样用了,我们 ...
- Redis 学习笔记(篇六):数据库
Redis 是一个使用 C 语言编写的 NoSql 的数据库,本篇就讲解在 Redis 中数据库是如何存储的?以及和数据库有关的一些操作. Redis 中的所有数据库都保存在 redis.h/redi ...