Java 极光推送接入相关代码
引入JAR包,可从官网下载,或加入maven
下面展示一些 内联代码片
。
package com.nuoda.ndoaserver.system.utils;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class JgPushUtil {
private static String masterSecret = "564";
private static String appKey = "546456";
private static final String ALERT = "推送信息";
/**
* 极光推送
*/
public void jiguangPush(Integer userId,String content){
String alias = userId.toString();//声明别名
log.info("对别名" + alias + "的用户推送信息");
PushResult result = push(alias,ALERT+content);
if(result != null && result.isResultOK()){
log.info("针对别名" + alias + "的信息推送成功!");
}else{
log.info("针对别名" + alias + "的信息推送失败!");
}
}
/**
* 生成极光推送对象PushPayload(采用java SDK)
* @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();
}
/**
* 极光推送方法(采用java SDK)
* @param alias
* @param alert
* @return PushResult
*/
public static PushResult push(String alias,String alert){
ClientConfig clientConfig = ClientConfig.getInstance();
JPushClient jpushClient = new JPushClient(masterSecret, appKey, null, clientConfig);
PushPayload payload = buildPushObject_android_ios_alias_alert(alias,alert);
try {
return jpushClient.sendPush(payload);
} catch (APIConnectionException e) {
log.error("连接错误,应稍后重试。");
e.printStackTrace();
return null;
} catch (APIRequestException e) {
log.error("JPush服务器的错误响应 ", e);
log.info("HTTP状态: " + e.getStatus());
log.info("错误代码: " + e.getErrorCode());
log.info("错误信息: " + e.getErrorMessage());
log.info("Msg ID: " + e.getMsgId());
e.printStackTrace();
return null;
}
}
}