先在极光推送后台绑定账号,获得app_key, master_secret。
根据极光推送官网文档,要是用的maven,则在maven中添加pom依赖,如下:
<dependency>
<groupId>cn.jpush.api</groupId>
<artifactId>jpush-client</artifactId>
<version>3.3.8</version>
</dependency>
<dependency>
<groupId>cn.jpush.api</groupId>
<artifactId>jiguang-common</artifactId>
<version>1.1.3</version>
</dependency>
以下是我的后台代码:
import cn.jiguang.common.ClientConfig;
import cn.jpush.api.JPushClient;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.Message;
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 java.util.HashMap;
import java.util.List;
import java.util.Map;
public class JpushUtils {
private static final String APP_KEY = "你的key";
private static final String MASTER_SECRET = "你的secret";
public static PushResult sendJpushMsg(String msg, List<String> aliasList, String platform) {
JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY, null, ClientConfig.getInstance());
Map<String, String> extras = new HashMap<String, String>();
// 添加信息:msg 消息内容 type:1,订单推送 2,系统推送
if (platform.equals("android")) {
PushPayload payload = buildPushObject_android_alias_alert(msg, extras, aliasList);
try {
PushResult result = jpushClient.sendPush(payload);
return result;
} catch (Exception e) {
e.printStackTrace();
}
} else if (platform.equals("ios")) {
PushPayload payload = buildPushObject_ios_alias_alert(msg, extras, aliasList);
try {
PushResult result = jpushClient.sendPush(payload);
return result;
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
/**
* 透传android,由android自行设计弹出框格式
*/
public static PushPayload buildPushObject_android_alias_alert(String msg, Map<String, String> extras, List<String> aliasList) {
return PushPayload.newBuilder()
.setPlatform(Platform.android())//必填 Platform类可设置推送的平台设备,android、ios、winphone或all;
.setNotification(Notification.newBuilder().setAlert(msg).addPlatformNotification(AndroidNotification.newBuilder().addExtras(extras).build())
.build())
// .setMessage(Message.newBuilder().setMsgContent(msg).addExtras(extras).build())////设置推送方式为透传
.setAudience(Audience.alias(aliasList))//设置推送平台目标别名
.build();
}
/**
* 推送ios
*/
public static PushPayload buildPushObject_ios_alias_alert(String msg, Map<String, String> extras, List<String> aliasList) {
return PushPayload.newBuilder()
.setPlatform(Platform.ios())//必填 Platform类可设置推送的平台设备,android、ios、winphone;
.setNotification(Notification.newBuilder()
.setAlert(msg)
.addPlatformNotification(IosNotification.newBuilder().addExtras(extras).build())
.build())//设置推送方式为推送
.setAudience(Audience.alias(aliasList))//设置推送平台目标别名
//.setOptions(Options.newBuilder().setApnsProduction(false).build())
//通过setApnsProduction来制定ios推送环境True 表示推送生产环境,False 表示要推送开发环境; 如 果不指定则为推送生产环境
.build();
}
}
然后或者是定时任务推送,或者是代码中单个业务推送,调用sendJpushMsg方法即可。
原文:https://www.cnblogs.com/lazydays/p/12078010.html