極光推送-服務端代碼

1.依賴

1.1.maven

pom.xmlandroid

  <dependency>
      <groupId>cn.jpush.api</groupId>
      <artifactId>jpush-client</artifactId>
      <version>3.3.3</version>
  </dependency>
<dependency> <groupId>cn.jpush.api</groupId> <artifactId>jiguang-common</artifactId> <version>1.0.8</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.6.Final</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.3</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.7</version> </dependency> <!-- For log4j --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.7</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>

 

1.2.jar包

jpush-client-3.3.3.jarios

jiguang-common-1.0.8.jarapi

netty-all-4.1.6.Final.jarmaven

gson-2.3.jar工具

slf4j-api-1.7.7.jar測試

 

2.推送工具類

2.1.代碼示例

    /**
     * 調用極光推送,推送消息
     * @param msg 消息內容
     * @param title 消息標題
     * @param alias 設備碼
     * @param extras 額外信息(用於前臺傳遞數據)
     * @return
     */
    public static boolean send(String msg, String title,String alias,Map<String ,String> extras) {
        //極光推送企業帳號信息
        String MASTER_SECRET = getProperty("MASTER_SECRET");
        String APP_KEY =getProperty("APP_KEY");
        
        //加密設備碼
        String aliasMd5 = MD5Util.md5Digest(alias).toLowerCase();
        logger.error("=====MASTER_SECRET="+MASTER_SECRET);
        logger.error("=====APP_KEY="+APP_KEY);
        logger.error("=====alias="+alias);
        logger.error("=====aliasMd5="+aliasMd5);
        logger.error("=====extras="+extras.get("userType").toString());
        
        //獲取設備類型
        String equipmentType = extras.get("equipmentType");    
        
        //獲取 payload 對象
        PushPayload payload = null;
        if( equipmentType != null && StringUtil2.equals("ios", equipmentType)){
            payload = buildPushObject_ios_alias_alertWithTitle(msg, title,aliasMd5,extras);
        }else if(equipmentType != null && StringUtil2.equals("android", equipmentType)){            
            payload = buildPushObject_android_alias_alertWithTitle(msg, title,aliasMd5,extras);
        }else{
            logger.info("equipmentType 爲空");
            return false;
        }
        //獲取 jpushClient 對象
        JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY, null,ClientConfig.getInstance());
        try {
            PushResult result = jpushClient.sendPush(payload);
            logger.info(LOGO_TXT + result);
            return result.isResultOK();
        } catch (APIConnectionException e) {
            e.printStackTrace();
            // Connection error, should retry later
            logger.error(LOGO_TXT+"Connection error, should retry later", e);

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

 

    public static PushPayload buildPushObject_android_alias_alertWithTitle(
            String msg, String title, String alias ,Map<String,String> extras) {
        
        return PushPayload.newBuilder().setPlatform(Platform.android())
                .setAudience(Audience.alias(alias))
                .setNotification(Notification.android(msg, title, extras))
                .build();
    }
    
    public static PushPayload buildPushObject_ios_alias_alertWithTitle(
            String msg, String title, String alias ,Map<String,String> extras) {

        return PushPayload.newBuilder().setPlatform(Platform.ios())
                .setAudience(Audience.alias(alias))
                .setNotification(Notification.ios("【"+title+"】"+msg, extras)).
                setOptions(Options.newBuilder().setApnsProduction(true).build())
                .build();
    }

 

3.測試方法

3.1.代碼測試

    public static void main(String[] args) {
        String msg ="msgtest111";
        String title ="title11";
        String alias ="333333";
//        String alias ="FB7E44E6-CBFC-49EB-B18A-3DC51D609DC9";
        String url = "www.baidu.com";
        Map<String ,String> m = new HashMap<String, String>();
        m.put("equipmentType", "ios");
        m.put("userType", "custromer");
        PushUtil.send(msg, title, alias,m);
    }

 

3.2.網站驗證

 登陸極光推送網站,登陸企業帳戶,查詢推送歷史網站

https://docs.jiguang.cn/jpush/ui

相關文章
相關標籤/搜索