java服务端的 极光推送
项目中用到了极光推送 下面写下笔记
首先引入jar包 下载地址https://docs.jiguang.cn/jpush/resources/(非maven项目的下载地址)
<dependency>
<groupId>cn.jpush.api</groupId>
<artifactId>jpush-client</artifactId>
<version>3.3.2</version>
</dependency>
package
com.test.push.messagepush01;
import
java.util.Map;
import
cn.jiguang.common.ClientConfig;
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.SMS;
import
cn.jpush.api.push.model.audience.Audience;
import
cn.jpush.api.push.model.audience.AudienceTarget;
import
cn.jpush.api.push.model.notification.IosNotification;
import
cn.jpush.api.push.model.notification.Notification;
public
class
PushTest{
private
static
final
String MASTER_SECRET=
"9a3869c9d2fec8333db*****"
;
//JPush服务器端下发的master_key
private
static
final
String APP_KEY=
"0e621306bf07eb4eefc*****"
;
//JPush服务器端下发的app_key
/**
* 构建推送对象:对所有平台,所有设备,内容为 alert的通知
* @param alter
* @return
*/
public
static
PushPayload buildPushObject_all_all_alert(String alter) {
return
PushPayload.alertAll(alter);
}
/**
* 所有平台,推送目标是别名为 "alias",通知内容为 alert
* @param alias
* @param alert
* @return
*/
public
static
PushPayload buildPushObject_all_alias_alert(String alias,Object alert) {
return
PushPayload.newBuilder()
.setPlatform(Platform.all())
.setAudience(Audience.alias(alias))
.setNotification(Notification.alert(alert))
.build();
}
/**
* 构建推送对象:平台是 Android,目标是 tag的设备,通知内容是alert,并且标题为title。
* @param tag
* @param alert
* @param title
* @param extras
* @return
*/
public
static
PushPayload buildPushObject_android_tag_alertWithTitle(String tag,String alert,String title,Map<String, String> extras) {
return
PushPayload.newBuilder()
.setPlatform(Platform.android())
.setAudience(Audience.tag(tag))
.setNotification(Notification.android(alert, title, extras))
.build();
}
/**
* 构建推送对象:平台是 iOS,推送目标是 tags(可以是一个设备也可以是多个设备),推送内容同时包括通知与消息 - 通知信息是alert,消息内容是 msgContent,角标数字为badge(应用程序左上角或者右上角的数字),通知声音为sound,并且附加字段 from = "JPush"。
* 通知是 APNs 推送通道的,消息是 JPush 应用内消息通道的。
* APNs 的推送环境是“生产”(如果不显式设置的话,Library 会默认指定为开发)
* @param alert
* @param msgContent
* @param badge
* @param sound
* @param tags
* @return
*/
public
static
PushPayload buildPushObject_ios_tagAnd_alertWithExtrasAndMessage(Object alert,String msgContent,
int
badge,String sound,String...tags) {
return
PushPayload.newBuilder()
.setPlatform(Platform.ios())
.setAudience(Audience.tag_and(tags))
.setNotification(Notification.newBuilder()
.addPlatformNotification(IosNotification.newBuilder()
.setAlert(alert)
.setBadge(badge)
.setSound(sound)
.addExtra(
"from"
,
"JPush"
)
.build())
.build())
.setMessage(Message.content(msgContent))
.setOptions(Options.newBuilder()
.setApnsProduction(
true
)
.build())
.build();
}
/**
* 构建推送对象:平台是 Andorid 与 iOS,推送的设备有(推送目标为tags和推送目标别名为aliases),推送内容是 - 内容为 msg_content的消息,并且附加字段 from = JPush。
* @param msg_content
* @param tags
* @param aliases
* @return
*/
public
static
PushPayload buildPushObject_ios_audienceMore_messageWithExtras(String msg_content,String[] tags,String[] aliases) {
return
PushPayload.newBuilder()
.setPlatform(Platform.android_ios())
.setAudience(Audience.newBuilder()
.addAudienceTarget(AudienceTarget.tag(tags))
.addAudienceTarget(AudienceTarget.alias(aliases))
.build())
.setMessage(Message.newBuilder()
.setMsgContent(msg_content)
.addExtra(
"from"
,
"JPush"
)
.build())
.build();
}
/**
* 构建推送对象:推送内容包含SMS信息
* @param title
* @param sendSMSContent
* @param delayTime
* @param aliases
*/
public
static
void
testSendWithSMS(String title,String sendSMSContent,
int
delayTime,String... aliases) {
JPushClient jpushClient =
new
JPushClient(MASTER_SECRET, APP_KEY);
try
{
SMS sms = SMS.content(sendSMSContent, delayTime);
PushResult result = jpushClient.sendAndroidMessageWithAlias(title, sendSMSContent, sms, aliases);
System.out.println(
"Got result - "
+ result);
}
catch
(APIConnectionException e) {
System.out.println(
"Connection error. Should retry later. "
+e);
}
catch
(APIRequestException e) {
System.out.println(
"Error response from JPush server. Should review and fix it. "
+e);
System.out.println(
"HTTP Status: "
+ e.getStatus());
System.out.println(
"Error Code: "
+ e.getErrorCode());
System.out.println(
"Error Message: "
+ e.getErrorMessage());
}
}
public
static
void
main(String[] args) {
String master_secret=PushTest.MASTER_SECRET;
String app_key=PushTest.APP_KEY;
JPushClient jpushClient =
new
JPushClient(master_secret,app_key,
null
, ClientConfig.getInstance());
PushPayload payload = PushTest.buildPushObject_all_all_alert(
"消息推送"
);
//PushPayload payload=PhicommPush.buildPushObject_android_tag_alertWithTitle("tag1", "123", "123", null);
try
{
PushResult result = jpushClient.sendPush(payload);
System.out.println(
"Got result - "
+ result);
}
catch
(APIConnectionException e) {
// Connection error, should retry later
System.out.print(
"Connection error, should retry later "
+e);
}
catch
(APIRequestException e) {
// Should review the error, and fix the request
System.out.println(
"根据返回的错误信息核查请求是否正确"
+e);
System.out.println(
"HTTP 状态信息码: "
+ e.getStatus());
System.out.println(
"JPush返回的错误码: "
+ e.getErrorCode());
System.out.println(
"JPush返回的错误信息: "
+ e.getErrorMessage());
}
}
}
java服务端的 极光推送的更多相关文章
- spring集成webSocket实现服务端向前端推送消息
原文:https://blog.csdn.net/ya_nuo/article/details/79612158 spring集成webSocket实现服务端向前端推送消息 1.前端连接webso ...
- java服务端集成极光消息推送--详细开发步骤
1.极光推送账号准备 要使用极光消息推送必须先在官方网站上注册账号,并添加应用. 产品介绍:https://docs.jiguang.cn/jpush/guideline/intro/ 注册开发者账号 ...
- 极光推送经验之谈-Java后台服务器实现极光推送的两种实现方式
原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/6439313.html Java后台实现极光推送有两种方式,一种是使用极光推送官方提供的推送请 ...
- Android端 配置极光推送
由于业务须要,androidclient须要加推送.原来採用的百度推送.可是小米手机有时候收不到.后来换成了极光推送,极光的话全部设备都能收到推送,可是在高峰的时候会推迟.博主说的免费版的,收费的没用 ...
- java后台服务器实现极光推送
一.添加极光推送所需要的jar包,项目使用的maven,所以只需要在pom文件里添加jar包依赖 <dependency> <groupId>cn.jpush.api</ ...
- C#服务端通过Socket推送数据到Android端App中
需求: 描述:实时在客户端上获取到哪些款需要补货. 要求: 后台需要使用c#,并且哪些需要补货的逻辑写在公司框架内,客户端采用PDA(即Android客户端 版本4.4) . 用户打开了补货通知页面时 ...
- Asp.net SignalR 实现服务端消息实时推送到所有Web端
ASP .NET SignalR是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信.实际上 Asp.net SignalR 2 实现 服务端消息推送到Web端, 更加 ...
- 服务端向客户端推送消息技术之websocket的介绍
websocket的介绍 在讲解WebSocket前,我们先来看看下面这种场景,在HTTP协议下,怎么实现. 需求: 在网站中,要实现简单的聊天,这种情况怎么实现呢?如下图: 当发送私信的时候,如果要 ...
- mqtt协议实现 java服务端推送功能(一)安装
最近有个新需求,需要通过java服务端把信息推送到mqtt服务器上,安卓和ios端从mqtt服务器上获取信息实现推送. 1. 本地需要安装Mosquitto服务器 http://mosquitto. ...
随机推荐
- Selenium(基于JAVA语言)-》在eclipse上运行web项目在Mac系统上启动时提示nodename nor servname provided解决办法
最近使用eclipse进行自动化测试时,遇到一种情况,无法调起浏览器,且有报错,如下: org.openqa.selenium.WebDriverException: failed to lookup ...
- 谈谈如何给下拉框option添加点击事件?
我们在用到下拉列表框select时,需要对选中的<option>选项触发事件,其实<option>本身没有触发事件方法,我们只有在select里的onchange方法里触发. ...
- 大数据新手之路一:安装JDK
Ubuntu16.04 1.下载jdk-8u192-linux-x64.tar.gz https://www.oracle.com/technetwork/java/javase/downloads/ ...
- Kafka学习之二 Kafka安装和使用
部署环境Linux(Centos 6.5),JDK 1.8.0,zookeeper-3.4.12,kafka_2.11-2.0.0. 1. 单机环境 官方建议使用JDK 1.8版本,因此本文使 ...
- scrapy中XMLFeedSpider
爬取案例: 目标网站: url = 'http://www.chinanews.com/rss/scroll-news.xml' 页面特点: 先创建爬虫项目: 也可以查看爬虫类: 创建xmlFeed ...
- 19、Squid代理服务器
第十九章,配置Squid服务器 一.代理服务器简介 19.1.1:什么是代理服务器 代理服务器的功能就是代理网络用户去取的网络信息,好比是网络信息的中转站,大多被用来连接互联网和局域网.代理服务器好像 ...
- [spring源码] 小白级别的源码解析IOC容器的依赖注入(三)
上一篇介绍了ioc容器的初始化过程,主要完成了ioc容器建立beanDefinition数据映射.并没有看到ioc容器对bean依赖关系进行注入. 接口getbean就是出发依赖注入发生的地方.下面从 ...
- input 标签的 disabled 和 readonly 属性
首先这两种属性都会使显示出来的文本框不能输入. disabled 属性:规定禁用 input 元素.被禁用的 input 元素既不可用,也不可点击和编辑,使用 tab 键时将会被跳过,用户的所有操作对 ...
- DNS及DNS有什么作用
什么是DNS,DNS有什么作用: DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直 ...
- [lightoj P1151] Snakes and Ladders
1151 - Snakes and Ladders Time Limit: 2 second(s) Memory Limit: 32 MB 'Snakes and Ladders' or 'Sh ...