極光推送的,推送工具類
package com.letui.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.device.TagListResult;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.*;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.audience.AudienceTarget;
import cn.jpush.api.push.model.notification.IosNotification;
import cn.jpush.api.push.model.notification.Notification;
import java.util.List;
public class JiGuangAppPush {
private static final String MASTER_SECRET = "*****";
private static final String APP_KEY = "*****";
private static JPushClient jpushClient = null;
public static final String TITLE = "Test from API example";
public static final String ALERT = "Test from API Example - alert";
public static final String MSG_CONTENT = "Test from API Example - msgContent";
private JiGuangAppPush() {
jpushClient = new JPushClient(MASTER_SECRET, APP_KEY, null, ClientConfig.getInstance());
}
private static JPushClient getInstance() {
if (jpushClient == null) {
new JiGuangAppPush();
}
return jpushClient;
}
public static List<String> getTags() throws APIConnectionException, APIRequestException {
TagListResult res = getInstance().getTagList();
if (res == null) {
return null;
}
return res.tags;
}
public static PushResult pushAll(String title) throws APIConnectionException, APIRequestException {
return getInstance().sendPush(buildPushObject_all_all_alert(title));
}
public static PushResult push(List<String> tags, String alert, Long id) throws APIConnectionException, APIRequestException {
List<String> list = JiGuangAppPush.getTags();
if (list == null) {
return null;
}
tags.retainAll(list);
return getInstance().sendPush(buildPushObjectAllTags(tags, alert, id));
}
public static PushResult pushOne(String alert, String tags) throws APIConnectionException, APIRequestException {
List<String> list = JiGuangAppPush.getTags();
if (list == null) {
return null;
}
if (list.contains(tags)) {
return getInstance().sendPush(buildPushObjectTags(alert, tags));
}
return null;
}
public static PushPayload buildPushObjectTags(String alert, String tags) {
return PushPayload.newBuilder()
.setPlatform(Platform.all())
.setAudience(Audience.tag(tags))
.setNotification(Notification.newBuilder()
.setAlert(alert)
.build())
.setMessage(Message.newBuilder()
.setMsgContent("小牛邦")
.build())
.build();
}
public static PushPayload buildPushObjectAllTags(List<String> tags, String alert, Long id) {
return PushPayload.newBuilder()
.setPlatform(Platform.all())
.setAudience(Audience.tag(tags))
.setNotification(Notification.newBuilder()
.setAlert(alert)
.build())
.setMessage(Message.newBuilder()
.setMsgContent("愛臨時")
.addExtra("id", id)
.addExtra("type", 1)
.build())
.build();
}
public static PushPayload buildPushObject_all_all_alert(String alert) {
return PushPayload.alertAll(alert);
}
public static PushPayload buildPushObject_all_alias_alert() {
return PushPayload.newBuilder()
.setPlatform(Platform.all())
.setAudience(Audience.alias("alias1"))
.setNotification(Notification.alert(ALERT))
.build();
}
public static PushPayload buildPushObject_android_tag_alertWithTitle() {
return PushPayload.newBuilder()
.setPlatform(Platform.android())
.setAudience(Audience.tag("1"))
.setNotification(Notification.android(ALERT, TITLE, null))
.build();
}
public static PushPayload buildPushObject_ios_tagAnd_alertWithExtrasAndMessage() {
return PushPayload.newBuilder()
.setPlatform(Platform.ios())
.setAudience(Audience.tag_and("tag1", "tag11"))
.setNotification(Notification.newBuilder()
.addPlatformNotification(IosNotification.newBuilder()
.setAlert(ALERT)
.setBadge(5)
.setSound("happy")
.addExtra("from", "JPush")
.build())
.build())
.setMessage(Message.content(MSG_CONTENT))
.setOptions(Options.newBuilder()
.setApnsProduction(true)
.build())
.build();
}
public static PushPayload buildPushObject_ios_audienceMore_messageWithExtras() {
return PushPayload.newBuilder()
.setPlatform(Platform.android_ios())
.setAudience(Audience.newBuilder()
.addAudienceTarget(AudienceTarget.tag("tag1", "tag2"))
.addAudienceTarget(AudienceTarget.alias("alias1", "alias2"))
.build())
.setMessage(Message.newBuilder()
.setMsgContent(MSG_CONTENT)
.addExtra("from", "JPush")
.build())
.build();
}
}