JPush极光推送API工具类(JAVA)
来源:互联网 发布:tensorflow官网镜像 编辑:程序博客网 时间:2024/06/10 19:05
package com.util.push;import cn.jpush.api.common.resp.APIConnectionException;import cn.jpush.api.common.resp.APIRequestException;import cn.jpush.api.push.model.PushPayload.Builder;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.audience.Audience;import cn.jpush.api.push.model.audience.AudienceTarget;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.apache.log4j.Logger;import java.util.Map;/** * @author SuperMudada * @ClassName: MessagePushUtil * @Description: TODO(消息推送工具类) * TODO(考察文档 http://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/) * @Created-Date: 2017/4/22 15:04 */public class MessagePushUtil { private static final String MASTER_SECRET = ""; //TODO(填写你的MASTER_SECRET) private static final String APP_KEY = ""; //TODO(填写你的APP_KEY) private static Logger logger = Logger.getLogger(JpushUtils.class); private static PushPayload pushPayload; private static Builder builder =PushPayload.newBuilder(); public static void main(String[] args) throws Exception { //TODO(构建推送内容,推送目标,推送类型) //pushPayload = MessagePushUtil.pushAndroidAndIosByAlias("30", "哈哈", "hehei"); pushPayload=PushPayload.alertAll("哈哈"); //TODO(开始推送) sendPushTryCatch(pushPayload); } /** * @param @param payload * @Title: sendPushTryCatch TODO(开始推送) * @Description: try catch 推送 */ public static void sendPushTryCatch(PushPayload payload) { JPushClient jPushClient = new JPushClient(MASTER_SECRET, APP_KEY); try { PushResult pushResult = jPushClient.sendPush(payload); logger.info("返回结果" + pushResult); } catch (APIConnectionException e) { logger.error("连接错误,稍后尝试" + e); } catch (APIRequestException e) { logger.error("极光推送内部错误", e); logger.info("网络请求状态" + e.getStatus()); logger.info("错误状态码" + e.getErrorCode()); logger.info("错误信息" + e.getErrorMessage()); logger.info("信息ID" + e.getMsgId()); logger.info("极光推送错误信息:" + e.getErrorMessage()); } } /** * @param alias 推送别名 * @param alert 推送标题 * @param content 推送内容(推荐json格式) * @return */ public static PushPayload pushAndroidAndIosByAlias(String alias, String alert, String content) { return builder .setPlatform(Platform.android_ios()) //推送平台 .setAudience(Audience.alias(alias)) //推送目标,这里指定进行别名推送 .setNotification(Notification.newBuilder() .setAlert(alert) .addPlatformNotification( AndroidNotification.newBuilder() .addExtra("sign", "5") .addExtra("content", content) .build()) .addPlatformNotification(IosNotification.newBuilder() .addExtra("sign", "5") .addExtra("content", content) .build()) .build()) .setOptions( Options.newBuilder() .setApnsProduction(false)//IOS推送環境、True 表示推送生产环境,False 表示要推送开发环境; .setTimeToLive(0) //推送当前用户不在线时,为该用户保留多长时间的离线消息,以便其上线时再次推送。默认 86400 (1 天),最长 10 天。设置为 0 表示不保留离线消息,只有推送当前在线的用户可以收到。 .build()) .build(); } /** * @param @param alert * @param @return 设定文件 * @return PushPayload 返回类型 * @throws * @Title: buildPushObjectAllAllAlert * @Description: TODO(快捷地构建推送对象:所有平台,所有设备,内容为 alert 的通知) */ @SuppressWarnings("static-access") public static PushPayload buildPushObjectAllAllAlert(String alert) { return pushPayload.alertAll(alert); } /** * @param @param alert * @param @param alias * @param @return 设定文件 * @return PushPayload 返回类型 * @throws * @Title: buildPushObjectAliasAlert * @Description: TODO(所有平台,推送目标是别名为 alias,通知内容为 alert) */ public static PushPayload buildPushObjectAliasAlert(String alert, String... alias) { return builder .setPlatform(Platform.android_ios()) .setAudience(Audience.alias(alias)) .setNotification(Notification.newBuilder() .setAlert(alert) .addPlatformNotification( AndroidNotification.newBuilder() .addExtra("sign", "5") .build()) .addPlatformNotification(IosNotification.newBuilder() .addExtra("sign", "5") .build()) .build()) .build(); } /** * @param @param alias * @param @param alert * @param @param badge * @param @return 设定文件 * @return PushPayload 返回类型 * @throws * @Title: buildPushObjectIos * @Description: TODO(iOS推送 badge sound) */ public static PushPayload buildPushObjectIosAndroid(Map<String, String> params, String[] alias, String alert, int badge, String sound, String msgContent) { return builder .setPlatform(Platform.android_ios()) .setAudience(Audience.alias(alias)) .setNotification(Notification.newBuilder() .addPlatformNotification(IosNotification.newBuilder() .setAlert(alert) .setBadge(badge) .addExtras(params) .setSound(sound) .build()) .addPlatformNotification(AndroidNotification.newBuilder() .setAlert(alert) .addExtras(params) .build()) .build()) .setMessage(Message.newBuilder() .setMsgContent(msgContent) .build()) .build(); } /** * @param @param params * @param @param alias * @param @return 设定文件 * @return PushPayload 返回类型 * @throws * @Title: buildPushObjectAllAliasAlert * @Description: TODO(所有平台,推送目标是别名为 alias,通知标题为 title,通知内容为 alert) */ public static PushPayload buildPushObjectAllAliasAlert(Map<String, String> params, String alert, String title, String... alias) { return builder .setPlatform(Platform.android_ios()) .setAudience(Audience.alias(alias)) .setNotification(Notification.newBuilder() .setAlert(alert) .addPlatformNotification(AndroidNotification.newBuilder() .setTitle(title) .addExtras(params) .build()) .addPlatformNotification(IosNotification.newBuilder() .addExtras(params) .build()) .build()) .build(); } /** * @param @param tag * @param @param alert * @param @param title * @param @return 设定文件 * @return PushPayload 返回类型 * @throws * @Title: buildPushObjectAndroidTagAlertWithTitle * @Description: TODO(平台是 Android,目标是 tag 为 tag 的设备,内容是 Android 通知 alert,并且标题为 title) */ public static PushPayload buildPushObjectAndroidTagAlertWithTitle(String tag, String alert, String title) { return builder .setPlatform(Platform.android()) .setAudience(Audience.tag(tag)) .setNotification(Notification.android(alert, title, null)) .build(); } /** * @param @param tag * @param @param tagAll * @param @param number * @param @param alert * @param @param msgContent * @param @return 设定文件 * @return PushPayload 返回类型 * @throws * @Title: buildPushObjectIosTagAndAlertWithExtrasAndMessage * @Description: TODO(构建推送对象:平台是 iOS,推送目标是 tag, tagAll 的交集, 推送内容同时包括通知与消息 - 通知信息是 alert,角标数字为 number,消息内容是 msgContent。通知是 APNs 推送通道的,消息是 JPush 应用内消息通道的。 * APNs 的推送环境是“开发”(如果不显式设置的话,Library 会默认指定为开发) * True 表示推送生产环境,False 表示要推送开发环境 *) */ public static PushPayload buildPushObjectIosTagAndAlertWithExtrasAndMessage( String tag, String tagAll, int number, String alert, String msgContent) { return builder .setPlatform(Platform.ios()) .setAudience(Audience.tag_and(tag, tagAll)) .setNotification(Notification.newBuilder() .addPlatformNotification(IosNotification.newBuilder() .setAlert(alert) .setBadge(number) .build()) .build()) .setMessage(Message.content(msgContent)) .setOptions(Options.newBuilder() .setApnsProduction(false) .build()) .build(); } /** * 构建推送对象:平台是 Andorid 与 iOS, * 推送目标是 (tag1 与 tag2 的并集), * 推送内容是 - 内容为 msgContent 的消息 * * @param @param tag1 * @param @param tag2 * @param @param msgContent * @param @return 设定文件 * @return PushPayload 返回类型 * @throws * @Title: buildPushObjectIosAudienceMoreMessageWithExtras * @Description: TODO() */ public static PushPayload buildPushObjectIosAudienceMoreMessageWithExtras( String tag1, String tag2, String msgContent) { return builder .setPlatform(Platform.android_ios()) .setAudience(Audience.newBuilder() .addAudienceTarget(AudienceTarget.tag(tag1, tag2)) .build()) .setMessage(Message.newBuilder() .setMsgContent(msgContent) .build()) .build(); }}
1 0
- JPush极光推送API工具类(JAVA)
- java远程调用JPush极光推送api
- JPush极光推送Java服务器端API
- JPush极光推送Java服务器端API
- java远程调用JPush极光推送api
- JPush极光推送Java服务器端API
- JPush极光推送Java服务器端API
- java服务器端调用JPush极光推送api推送通知消息
- java服务器端调用JPush极光推送api推送通知消息
- JPush(极光推送)
- JPush极光推送服务器端API
- JPush极光推送 Java调用服务器端API开发
- JPush极光推送 Java调用服务器端API开发
- JPush极光推送 Java调用服务器端API开发
- JPush极光推送 Java调用服务器端API开发
- JPush极光推送 Java调用服务器端API开发
- JPush极光推送Java服务器端
- Jpush 极光推送java服务器端
- editText 设置最大字符数
- jzoj P2132【2017.4.21普及】架设电话线
- java 的public,protected,private,default的区别
- Structs2 Action访问Servlet API的三种方式
- stm32 纯汇编文件编写 与c混合
- JPush极光推送API工具类(JAVA)
- 群控源码
- 字符设备驱动
- 《Training:Retrieving File Information》
- 回文子序列 ssl 2662 枚举
- java中的位运算
- 二叉树的中序遍历
- AngularJS 动画
- 基于Doxygen的C/C++注释原则