app-极光推送

第一步:在极光官网注册账号,创建应用,获取masterSecret,appKey  (官网:https://www.jiguang.cn/

第二部:导入jar包 maven依赖

<!--极光推送-->
<dependency>
<groupId>cn.jpush.api</groupId>
<artifactId>jpush-client</artifactId>
<version>3.4.3</version>
</dependency>
第三部:创建
JiguangPushUtil 工具类
import cn.jiguang.common.ClientConfig;
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.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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 极光推送工具类
 * 极光接口文档:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/
 *
 */
public class JiguangPushUtil {
    private static final Logger log = LoggerFactory.getLogger(JiguangPushUtil.class);
    private static String masterSecret = "4375f026ecc8f154eb272eb4";
    private static String appKey = "d6daaf88654b1b237af7b2e4";
    private static final String ALERT = "推送信息";

    public static void main(String[] args) {
        String registrationId = "123456";//声明注册id
        log.info("对注册id为[" + registrationId + "]的用户推送信息");
        PushResult result = push(registrationId,ALERT, false, 86400l);
        if(result != null && result.isResultOK()){
            log.info("推送成功!");
        }else{
            log.info("推送失败!");
        }
    }

    /**
     * 根据终端注册id推送
     * @param registrationId
     * @param alert
     * @return PushResult
     */
    public static PushResult push(String registrationId,String alert, Boolean isProduction, Long timeToLive){
        ClientConfig clientConfig = ClientConfig.getInstance();
        JPushClient jpushClient = new JPushClient(masterSecret, appKey, null, clientConfig);
        PushPayload payload = buildPushObject_android_ios_registration_id_alert(registrationId,alert, isProduction, timeToLive);
//        PushPayload payload = buildPushObject_android_ios_registration_id_alert(registrationId,alert);
        try {
            return jpushClient.sendPush(payload);
        } catch (APIConnectionException e) {
            log.error("极光推送接口连接异常,请稍后重试. ", e);
            return null;
        } catch (APIRequestException e) {
            log.error("极光推送接口响应异常. ", e);
            log.info("========极光推送接口响应异常========");
            log.info("HTTP Status: " + e.getStatus());
            log.info("Error Code: " + e.getErrorCode());
            log.info("Error Message: " + e.getErrorMessage());
            log.info("Msg ID: " + e.getMsgId());
            log.info("=================================");
            return null;
        }
    }

    /**
     * 生成极光推送对象PushPayload,默认推送生产环境,存活时间86400s。
     * @param registrationId
     * @param alert
     * @return PushPayload
     */
    public static PushPayload buildPushObject_android_ios_registration_id_alert(String registrationId,String alert){
        return buildPushObject_android_ios_registration_id_alert(registrationId, alert, true, 86400l);
    }

    /**
     * 生成极光推送对象PushPayload
     *
     * @param registrationId    客户端注册id,需要接受推送内容的终端标识
     * @param alert             推送内容
     * @param isProduction      是否推送生产环境
     * @param timeToLive        离线推送存活时间
     * @return
     */
    public static PushPayload buildPushObject_android_ios_registration_id_alert(String registrationId,String alert, Boolean isProduction, Long timeToLive){
        return PushPayload.newBuilder()
                .setPlatform(Platform.android_ios())
                .setAudience(Audience.registrationId(registrationId))
                .setNotification(Notification.newBuilder()
                        .addPlatformNotification(AndroidNotification.newBuilder()
                                .setAlert(alert)
                                .build())
                        .addPlatformNotification(IosNotification.newBuilder()
                                .setAlert(alert)
                                .build())
                        .build())
                .setOptions(Options.newBuilder()
                        .setApnsProduction(isProduction)//true-推送生产环境 false-推送开发环境
                        .setTimeToLive(timeToLive)//消息在JPush服务器的失效时间
                        .build())
                .build();
    }

    /**
     * 生成极光推送对象PushPayload
     * @param alias 别名
     * @param alert 推送内容
     * @return PushPayload
     */
    public static PushPayload buildPushObject_android_ios_alias_alert(String alias,String alert){
        return PushPayload.newBuilder()
                .setPlatform(Platform.android_ios())
                .setAudience(Audience.alias(alias))
                .setNotification(Notification.newBuilder()
                        .addPlatformNotification(AndroidNotification.newBuilder()
                                .addExtra("type", "infomation")
                                .setAlert(alert)
                                .build())
                        .addPlatformNotification(IosNotification.newBuilder()
                                .addExtra("type", "infomation")
                                .setAlert(alert)
                                .build())
                        .build())
                .setOptions(Options.newBuilder()
                        .setApnsProduction(false)//true-推送生产环境 false-推送开发环境(测试使用参数)
                        .setTimeToLive(90)//消息在JPush服务器的失效时间(测试使用参数)
                        .build())
                .build();
    }


}
极光推送工具类

 

posted @ 2020-03-11 18:06  枫沫  阅读(506)  评论(0编辑  收藏  举报