pom.xml
<!-- 極光推送 --> <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jpush-client</artifactId> <version>3.3.10</version> </dependency> <dependency> <groupId>cn.jpush.api</groupId> <artifactId>jiguang-common</artifactId> <version>1.1.4</version> </dependency>
java代碼
package com.yt.xxx.app.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 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配置文件中*/ private static String APP_KEY = "e538********b5231"; private static String MASTER_SECRET = "3d34******75409"; // 極光推送>>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.all()) // .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("msg"))) .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(); } } }
Test(測試)
package com.yt.xxx.app; import com.yt.dzds.app.util.JPushUtil; import java.util.HashMap; import java.util.Map; /** * @ClassName test * @Description: * @Author gzm * @Date 2020/6/12 10:19 **/ public class test { public static void main(String[] args) { // 設置推送參數 // 這里可以自定義推送參數了 Map<String, String> parm = new HashMap<String, String>(); // 設置提示信息,內容是文章標題 parm.put("msg","你知道對我最重要的東西是什么嗎?是這句話的第一個字"); parm.put("title","title"); parm.put("alias","alias"); JPushUtil.jpushAndroid(parm); } }
運行結果
極光推送