Java整合極光推送 ( 簡單 )


Java 整合極光推送官方文檔:https://github.com/jpush/jpush-api-java-client

這里記錄一下簡單的使用步驟:創建一個普通的 Maven 工程然后添加依賴

<dependency>
    <groupId>cn.jpush.api</groupId>
    <artifactId>jpush-client</artifactId>
    <version>3.4.8</version>
</dependency>

然后創建一個類測試消息推送,代碼如下所示:

public class PushTest {
    public static void main(String[] args) throws Exception {
        // 實現推送最基本的兩個參數
        String APP_KEY = "APP_KEY";
        String MASTER_SECRET = "SECRET";
        // 構建極光客戶端對象
        JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
        // 獲取Payload對象,對象內封裝這消息主體、消息接收范圍等等,Payload是個重點
        PushPayload payload = getPayload("消息接收測試");
        // 調用客戶端對象中的sendPush函數進行發送消息
        jpushClient.sendPush(payload);
    }
}

構建 Payload 對象

可以看到,通過兩個基本參數構建了極光推送實例,然后獲取到Payload將其發送出去完成了推送,這里含金量最高的地方就是獲取 payload 的過程,上面獲取 payload 的函數並沒有寫出來,這里單獨拿出來看:

public static PushPayload getPayload(String msg) {
    return new PushPayload.Builder()
            .setPlatform(Platform.android())
            .setAudience(Audience.all())
            .setNotification(Notification.alert(msg))
            .build();
}

構建最基本的 Payload 對象語法是這樣寫的:

PushPayload payload = new PushPayload.Builder().build();

但是這樣構建出來的是空對象,我們需要在build()之前對這個實例進行一些操作,例如:

1. 發送消息的內容:最終顯示在通知上的內容

 PushPayload payload = new PushPayload.Builder()
     // 消息的具體內容,會顯示在通知上
    .setNotification(Notification.alert("【系統提示】您有五元話費優惠券待領取"))
    .build();

顯示在手機上類似這種效果:

2. 限制接收消息的平台:例如限制為安卓、蘋果

PushPayload payload = new PushPayload.Builder()
    .setNotification(Notification.alert("【系統提示】您有五元話費優惠券待領取"))
    /*
     * setPlatform代表客戶端平台,也就是設備類型,最常用的幾個參數為:
     *    1. Platform.all():所有設備都可以接收
     *    2. Platform.android():僅安卓設備可接收
     *    3. Platform.ios():僅蘋果設備可接收
     *    4. Platform.android_ios():安卓、蘋果都可以接收
     *    ....
     */
    .setPlatform(Platform.all())
    .build();

3. 限制接收消息的設備:匹配客戶端自行設置的 TAG 標簽以及 Alias 別名

PushPayload payload = new PushPayload.Builder()
    .setNotification(Notification.alert("【系統提示】您有五元話費優惠券待領取"))
    .setPlatform(Platform.all())
    /*
     * setAudience可以過濾符合條件的客戶端,最常用的幾個參數為:
     *    1. Audience.all():沒有設置過濾條件
     *    2. Audience.alias("01", "02" ...):設置了目標別名的設備才能接收到
     *    3. Audience.tag("VIP1", "VIP2" ...):添加了目標標簽才可以接收到
     *    4. Audience.tag_and("VIP", "SVIP" ...):必須同時擁有這兩個標簽才能接收到
     *    5. Audience.tag_not("Guest" ...):必須不包含這些標簽才能接收到
     *    還有一些更高級的交集並集玩兒法等等....
     */
    .setAudience(Audience.all())
    .build();

4. 關於消息的其他配置項

PushPayload payload = new PushPayload.Builder()
    .setNotification(Notification.alert("【系統提示】您有五元話費優惠券待領取"))
    .setPlatform(Platform.all())
    .setAudience(Audience.all())
    /*
     * setOptions對消息進行其他設置,需要傳入Options實例,同樣是鏈式編程然后跟上build()函數,例如:
     *     setTimeToLive(10):消息離線生存時間/s,發送消息后10秒內用戶打開了APP就會收到消息,否則收不到
     *     其他配置項我這里沒用過就沒去找....
     */
    .setOptions(Options.newBuilder()
                .setTimeToLive(10)
                .build())
    .build();


免責聲明!

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



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