package com.xzx.gc.common.utils; import cn.hutool.core.lang.Singleton; import cn.hutool.json.JSONUtil; 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.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 com.xzx.gc.common.constant.CommonEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import java.util.HashMap; import java.util.Map; /** * 极光推送 */ @Component @Slf4j public class JGUtil { @Value("${jg.appkey:15d3c598bcce63efd84814ef}") private String appKey; @Value("${jg.secret:2c7cf147b030c5c9317cd954}") private String secret; @PostConstruct public void init(){ JPushClient jpushClient = new JPushClient(secret, appKey, null, ClientConfig.getInstance()); Singleton.put(jpushClient); } /** * 推送给安卓 */ public String sendByAnroid(String alert, String title, Map extras, Audience audience){ Map map=new HashMap<>(); map.put("alert",alert); map.put("title",title); map.put("extras",extras); map.put("audience",audience); // String clientType = extras.get("clientType"); // extras.remove("clientType"); //false为开发环境 boolean isProd=false; if(SpringUtil.isProdOrCloud()){ isProd=true; } try { PushPayload tag1 = PushPayload.newBuilder() .setPlatform(Platform.android_ios()) .setAudience(audience) .setNotification(Notification.newBuilder().addPlatformNotification(AndroidNotification.newBuilder().setAlert(alert).setTitle(title).addExtras(extras).build()).addPlatformNotification(IosNotification.newBuilder().setAlert(alert).addExtras(extras).build()).build()) .setOptions(Options.newBuilder().setApnsProduction(isProd).build()) .build(); JPushClient jPushClient = Singleton.get(JPushClient.class); jPushClient.sendPush(tag1); log.info("极光推送成功:{}",JSONUtil.toJsonPrettyStr(map)); return null; } catch (APIConnectionException | APIRequestException e) { if(extras==null){ extras=new HashMap<>(); } log.warn("极光推送失败:extras内容:{},错误信息:{}",JSONUtil.toJsonStr(extras),e.getMessage()); return e.getMessage(); } } }