From 931ea9dcdf62ea348f1811b9faf95d07ab1c1ac8 Mon Sep 17 00:00:00 2001 From: 罗元桥 <2376770955@qq.com> Date: 星期日, 26 九月 2021 14:22:22 +0800 Subject: [PATCH] Merge branch 'test' into 'test_bak' --- springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/util/JPushUtil.java | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 158 insertions(+), 0 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/util/JPushUtil.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/util/JPushUtil.java new file mode 100644 index 0000000..08cc430 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/util/JPushUtil.java @@ -0,0 +1,158 @@ +package com.panzhihua.service_property.util; + +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.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 lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; + +import java.util.Map; + +/** + * @ClassName JPushUtil + * @Description: + * @Author gzm + * @Date 2020/6/12 10:14 + **/ +@Slf4j +public class JPushUtil { + + /** 设置好账号的app_key和masterSecret是必须的 + 用自己创建以用后的APP_KEY和MASTER_SECRET + 替换即可,后期可写到yml配置文件中*/ + @Value("{JPush.APP_KEY}") + private static String APP_KEY = "6db03724d207e0debcca68af"; + private static String MASTER_SECRET = "8ba46c3e30e1fd2cea0b246e"; + + // 极光推送>>Android + //Map<String, String> parm是我自己传过来的参数,可以自定义参数 + + public static void jpushAndroid(Map<String, String> parm) { + + // 创建JPushClient(极光推送的实例) + JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY); + // 推送的关键,构造一个payload + PushPayload payload = PushPayload.newBuilder() + // 指定android平台的用户 + .setPlatform(Platform.android()) + // 同社区账号推送 + .setAudience(Audience.tag(parm.get("communityId"))) + +// .setAudience(Audience.alias(parm.get("alias"))) // 设置别名发送,单发,点对点方式 + //.setAudience(Audience.tag("tag1")) // 设置按标签发送,相当于群发 +// .setAudience(Audience.registrationId(parm.get("id"))) // registrationId指定用户 + // 发送内容 + .setNotification(Notification.android(parm.get("msg"), + parm.get("title"), parm)) + // apnProduction指定开发环境 true为生产模式 false 为测试模式 (android不区分模式,ios区分模式) 不用设置也没关系 + // TimeToLive 两个小时的缓存时间 + .setOptions(Options.newBuilder().setApnsProduction(true).setTimeToLive(7200).build()) + // 自定义信息 + .setMessage(Message.content(parm.get("alarm"))) + .build(); + try { + PushResult pu = jpushClient.sendPush(payload); + + System.out.println(pu.toString()); + + } catch (APIConnectionException e) { + e.printStackTrace(); + } catch (APIRequestException e) { + e.printStackTrace(); + } + } + + // 极光推送>>ios + + // Map<String, String> parm是我自己传过来的参数,可以自定义参数 + + public static void jpushIOS(Map<String, String> parm) { + // 创建JPushClient + JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY); + PushPayload payload = PushPayload.newBuilder() + // ios平台的用户 + .setPlatform(Platform.ios()) + // 所有用户 + .setAudience(Audience.all()) + // registrationId指定用户 + //.setAudience(Audience.registrationId(parm.get("id"))) + .setNotification(Notification.newBuilder() + .addPlatformNotification(IosNotification.newBuilder() + .setAlert(parm.get("msg")) + .setBadge(+1) + // 这里是设置提示音 + .setSound("happy") + .addExtras(parm) + .build()) + .build()) + .setOptions(Options.newBuilder().setApnsProduction(false).build()) + // 自定义信息 + .setMessage(Message.newBuilder().setMsgContent(parm.get("msg")).addExtras(parm).build()) + .build(); + try { + PushResult pu = jpushClient.sendPush(payload); + log.info(String.valueOf(pu)); + } catch (APIConnectionException e) { + e.printStackTrace(); + } catch (APIRequestException e) { + e.printStackTrace(); + } + } + + + // 极光推送>>All所有平台 + + public static void jpushAll(Map<String, String> param) { + + // 创建JPushClient + JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY); + // 创建option + PushPayload payload = PushPayload.newBuilder() + // 所有平台的用户 + .setPlatform(Platform.all()) + // registrationId指定用户 + .setAudience(Audience.registrationId(param.get("id"))) + + .setNotification(Notification.newBuilder() + // 发送ios + .addPlatformNotification(IosNotification.newBuilder() + // 消息体 + .setAlert(param.get("msg")) + .setBadge(+1) + // ios提示音 + .setSound("happy") + // 附加参数 + .addExtras(param) + .build()) + // 发送android + .addPlatformNotification(AndroidNotification.newBuilder() + // 附加参数 + .addExtras(param) + // 消息体 + .setAlert(param.get("msg")) + .build()) + .build()) + // 指定开发环境 true为生产模式 false 为测试模式 (android不区分模式,ios区分模式) + .setOptions(Options.newBuilder().setApnsProduction(true).build()) + // 自定义信息 + .setMessage(Message.newBuilder().setMsgContent(param.get("msg")).addExtras(param).build()) + .build(); + try { + PushResult pu = jpushClient.sendPush(payload); + log.info(String.valueOf(pu)); + } catch (APIConnectionException e) { + e.printStackTrace(); + } catch (APIRequestException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file -- Gitblit v1.7.1