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