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. ...
随机推荐
- C# HttpWebResponse WebClient 基础连接已经关闭: 发送时发生错误.
https://blog.csdn.net/sun49842566/article/details/82802297 net 4.0 设置: ServicePointManager.SecurityP ...
- Webpack与其他打包工具的区别
webpack是一个模块化加载器兼打包工具,它同时支持AMD.CMD等加载规范.与其他模块化加载器相比,它有这些优势: 1.代码分割 webpack支持两种依赖加载:同步和异步.同步的依赖会在编译时直 ...
- ssm+redis整合(通过cache方式)
这几天的研究ssm redis 终于进入主题了,今天参考了网上一些文章搭建了一下ssm+redis整合,特别记录下来以便以后可以查询使用,有什么不足请大牛们提点 项目架构 1.pom.xml < ...
- 四:DRF项目开发的准备
一: 虚拟环境virtualenv 如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就 ...
- js中实现截取数组的后几个元素作为一个新数组的方法
有时候我们会遇到这种需求,截取数组中后5个元素作为一个新数组,且顺序不能变.数组中的slice()方法和splice()方法都可以实现这样的操作. const arr = [1,2,7,2,6,0,3 ...
- PHP冒泡排序-手写
<?php $a = [1,3,5,2,9,6]; for ($i = 0 ;$i < count($a) ;$i++) { for ($j = $i + 1;$j < count( ...
- 9foundation
注意点 1NSDate时间,时间字符串, 时间戳,格式器,四者的的关系 <1NSDate拥有属性时间戳 <2format格式器,可以直接把NSDate读取为时间字符串,把时间字符串读取为N ...
- 用GraphX分析伴生网络(二)
8. 过滤噪声边 在当前的伴生关系中,边的权重是基于一对概念同时出现在一篇论文中的频率来计算的.这种简单的权重机制的问题在于:它并没有对一对概念同时出现的原因加以区分,有时一对概念同时出现是由于它们具 ...
- POJ3070 斐波那契数列 矩阵快速幂
题目链接:http://poj.org/problem?id=3070 题意就是让你求斐波那契数列,不过n非常大,只能用logn的矩阵快速幂来做了 刚学完矩阵快速幂刷的水题,POJ不能用万能头文件是真 ...
- JavaScript基础四
1.13 Js中的面向对象 1.13.1 创建对象的几种常用方式 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.使用Object或 ...