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)请参考 [ 极光文档 ] 步骤一: 首先,你必须在 [极 ...
随机推荐
- java获取config下文件
private static final String keystore="keystore.jks"; InputStream is=Thread.currentThread() ...
- restapi(0)- 平台数据维护,写在前面
在云计算的推动下,软件系统发展趋于平台化.云平台系统一般都是分布式的集群系统,采用大数据技术.在这方面akka提供了比较完整的开发技术支持.我在上一个系列有关CQRS的博客中按照实际应用的要求对akk ...
- django基础知识之HTML转义:
HTML转义 Django对字符串进行自动HTML转义,如在模板中输出如下值: 视图代码: def index(request): return render(request, 'temtest/in ...
- Spring Cloud 之 Hystrix.
一.概述 在微服务架构中,我们将系统拆分成了很多服务单元,各单元的应用间通过服务注册与订阅的方式互相依赖.由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依 ...
- 2019 Java 全栈工程师进阶路线图,一定要收藏
技术更新日新月异,对于初入职场的同学来说,经常会困惑该往那个方向发展,这一点松哥是深有体会的. 我刚开始学习 Java 那会,最大的问题就是不知道该学什么,以及学习的顺序,我相信这也是很多初学者经常面 ...
- python接口自动化(三十)--html测试报告通过邮件发出去——中(详解)
简介 上一篇,我们虽然已经将生成的最新的测试报告发出去了,但是MIMEText 只能发送正文,无法带附件,因此我还需要继续改造我们的代码,实现可以发送带有附件的邮件.发送带附件的需要导入另外一个模块 ...
- seleniumGrid分布式远程执行测试脚本
执行UI自动化测试脚本时,不仅可以在本地执行,也可以远程指定某计算机执行测试脚本,seleniumGrid为我们提供了这类服务,但还需要自己搭建环境. 一.本地计算机需要准备java环境和seleni ...
- [机器学习] k-近邻算法(knn)
最近在参加大数据的暑期培训,记录一下学习的东西. 引言 懒惰学习法:简单的存储数据,并且一直等待,直到给定一个检验数据,才进行范化,以便根据与存储的训练元组的相似性对该检验数据进行分类.懒惰学习法在 ...
- CF1027D Mouse Hunt题解
题目: 伯兰州立大学的医学部刚刚结束了招生活动.和以往一样,约80%的申请人都是女生并且她们中的大多数人将在未来4年(真希望如此)住在大学宿舍里. 宿舍楼里有nn个房间和一只老鼠!女孩们决定在一些房间 ...
- docker学习笔记-简介
零.什么是Docker 是一个基于GO语言开发的开源 应用容器: 开发者可以打包应用和相关包,到一个 轻量级 . 可移植 的 容器 中,并且可以发布到 任何机器 ,实现 虚拟化: 完全使用 沙箱机制, ...