SpringBoot集成極光推送Java-SDK


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);

    }

}

運行結果

 

 極光推送

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM