1. 程式人生 > 實用技巧 >Java 使用第三方推送 -- 極光推送

Java 使用第三方推送 -- 極光推送

極光官網連結 : https://www.jiguang.cn/

Java後端的整合如下:

<dependency>
            <groupId>cn.jpush.api</groupId>
            <artifactId>jpush-client</artifactId>
            <version>3.4.2</version>
        </dependency>
        <dependency>
            <groupId>cn.jpush.api</groupId>
            <artifactId>jiguang-common</artifactId>
            <version>1.1.3</version>
        </dependency>

  

建立一個工具類JiGuangPushUtil.java

package com.zy.cm.common.core.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.IosAlert; import cn.jpush.api.push.model.notification.IosNotification;
import cn.jpush.api.push.model.notification.Notification; import java.util.HashMap; import java.util.List; import java.util.Map; public class JiGuangPushUtil { /** * 兩個引數分別填寫你申請的masterSecret和appKey## */ private static String masterSecret = "你的masterSecret"; private static String appKey = "你的appKey"; private static JPushClient jPushClient=new JPushClient(masterSecret,appKey); /** * 全平臺推送 * @param parm map裡面可以根據自身情況增加一些引數 比如頁面跳轉的地址等    * @param list 使用者id集合 這裡我們是以使用者id作為別名的方式註冊到極光 所以我們只需要把使用者id給極光 他就會直接給對應使用者推送 */ public static void jpushAll(Map<String, String> parm,List<String> list) { PushPayload payload = PushPayload.newBuilder() //所有平臺的使用者 .setPlatform(Platform.all()) //指定使用者 .setAudience(Audience.alias(list)) .setNotification(Notification.newBuilder() //ios推送 .addPlatformNotification(IosNotification.newBuilder() .setAlert(IosAlert.newBuilder().setTitleAndBody(parm.get("title"),null,parm.get("body")).build()) .setBadge(+1) .setSound("qxgf") .addExtras(parm) .build()) //Android推送 也可以分開寫 .addPlatformNotification(AndroidNotification.newBuilder() .setTitle(parm.get("title")) .addExtras(parm) .setAlert(parm.get("body")) .build()) .build()) //指定開發環境 .setOptions(Options.newBuilder().setApnsProduction(false).build()) //自定義資訊 .setMessage(Message.newBuilder().setMsgContent(parm.get("title")).addExtras(parm).build()) .build(); try { PushResult pushResult = jPushClient.sendPush(payload); System.out.println(pushResult); if(pushResult.getResponseCode()==200){ System.out.println(pushResult.getResponseCode()); } } catch (APIConnectionException e) { e.printStackTrace(); } catch (APIRequestException e) { e.printStackTrace(); } } /** * 引數設定 * @param title * @param body * @param list 使用者集合 */ public static void jpushPush(String title, String body, List<String> list){ Map<String, String> parm = new HashMap<>(); //標題 parm.put("title",title); //內容 parm.put("body",body); JiGuangPushUtil.jpushAll(parm,list); } }

最後哪裡使用在哪裡直接呼叫:

JiGuangPushUtil.jpushPush(MedicalConstant.System_Schedule,body,list);