極光推送—java快速接入

ldear發表於2017-08-18

此文記錄自己開發專案時,java快速接入極光推送的過程,免去研究官方文件的流程!
詳情也可參考 [極光官網] (http://docs.jiguang.cn/jpush/guideline/intro/)

新手問題解惑:

問題:初次接觸極光推送,分不清推送的物件?答:

  • 廣播:會把通知無區別的推送到每個人身上。
  • 設定標籤:這一般用於群組推送。
  • 設定別名:適用於單播,根據客戶端設定的別名來推送。(一般選擇使用者ID)
  • 設定註冊ID:適用於單播推送,指定推送給某一個人,可以使用註冊過的使用者ID,主要用來區分。

別名,註冊ID,標籤,都需要跟客戶端開發人員溝通確定統一的規則,一般會使用userId作為單播標識,


接入步驟如下:

步驟1:

在java專案中建立工具類class,例:JpushClient.java

步驟2:

在maven pom.xml檔案中新增依賴關係

 <dependency>
      <groupId>cn.jpush.api</groupId>
      <artifactId>jpush-client</artifactId>
      <version>3.2.17</version>
    </dependency>
步驟3:

在JpushClient.java類中,推送方法,參考如下兩段程式碼

基本配置程式碼
 //在極光註冊的APPKEY和MASTERSECRET    必填
    private static final String APPKEY ="ad7ba99aa8ad92a4c5";

    private static final String MASTERSECRET ="51feea7371bef4";

    private static JPushClient jpushClient = null;

    //儲存離線的時長,最多支援10天     (Ps:不填寫時,預設是儲存一天的離線訊息     0:代表不儲存離線訊息)
    private static int timeToLive = 60 * 60 * 24 ;

    private static Logger logger = LoggerFactory.getLogger(JpushClient.class);
構建推送物件:別名推送 例:關注推送

type:是自己設定的值,前後端保持一致即可
請求引數:是推送的自己要輸入的內容

 public static PushPayload buildPushObject_alias_followUser(String alias ,String nickname) {
        return PushPayload.newBuilder().setPlatform(Platform.android_ios())
                .setAudience(Audience.alias(alias))
                .setNotification(Notification.newBuilder()
                        .addPlatformNotification(AndroidNotification.newBuilder()
                                .addExtra("type", "infomation")
                                .setAlert(nickname+" 關注了你!")
                                .build())
                        .addPlatformNotification(IosNotification.newBuilder()
                                .addExtra("type", "infomation")
                                .setAlert(nickname+" 關注了你!")
                                .build())
                        .build())
                .setOptions(Options.newBuilder()
                        .setApnsProduction(true)//true-推送生產環境 false-推送開發環境(測試使用引數)
                        .setTimeToLive(timeToLive)
                        .build())
                .build();
    }
傳送推送訊息 send message

此方法呼叫了,上面的構建物件方法,將構建好的物件推送給手機端

  //send message after followUser
    public static void sendPushAfterFollow(String alias ,String nickname){
        try {
            jpushClient = new JPushClient(MASTERSECRET, APPKEY, null, ClientConfig.getInstance());
            //生成推送的內容
            PushPayload payload = buildPushObject_alias_followUser(alias,nickname);
            payload.resetOptionsTimeToLive(timeToLive);
            PushResult result = jpushClient.sendPush(payload);
            logger.info("Got result - " + result);
        } catch (APIConnectionException e) {
            // Connection error, should retry later
            logger.error("Connection error, should retry later", e);

        } catch (APIRequestException e) {
            // Should review the error, and fix the request
            logger.error("Should review the error, and fix the request", e);
            logger.info("HTTP Status: " + e.getStatus());
            logger.info("Error Code: " + e.getErrorCode());
            logger.info("Error Message: " + e.getErrorMessage());
        }

    }

步驟4:在專案業務層service層呼叫,上面的工具類中的方法即可進行推送
   //向指定使用者推送訊息
        JpushClient.sendPushAfterFavorite(引數1,引數2...);

至此,java快速接入極光推送已經完成,過程非常簡單,詳細的引數規則,請參考極光官網!


作者:Moli_wu
連結:http://www.jianshu.com/p/22a4d630c01a
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

相關文章