New file |
| | |
| | | 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(); |
| | | } |
| | | } |
| | | } |