本工具类只是抽取了官方demo中的部分,实现简单的消息推送(群推+单推), 更加多的功能请参考官方文档。
使用springboot集成,构建工具采用gradle
引入相关jar包:
compile("com.gexin.platform:gexin-rp-sdk-http:4.0.1.17")
compile("com.gexin.platform:gexin-rp-sdk-template:4.0.0.16")
maven引入方式:
<dependency> <groupId>com.gexin.platform</groupId> <artifactId>gexin-rp-sdk-http</artifactId> <version>4.0.1.17</version> </dependency> <dependency> <groupId>com.gexin.platform</groupId> <artifactId>gexin-rp-sdk-template</artifactId> <version>4.0.0.16</version> </dependency>
相关配置信息我写在配置文件里:

这些信息从个推官方开发者中心创建的应用获取:

然后工具类
GeTuiUtil:
package com.hsny.common.util.getui;
import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.AppMessage;
import com.gexin.rp.sdk.base.impl.PushResult;
import com.gexin.rp.sdk.base.impl.SingleMessage;
import com.gexin.rp.sdk.base.impl.Target;
import com.gexin.rp.sdk.exceptions.RequestException;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.NotificationTemplate;
import com.gexin.rp.sdk.template.TransmissionTemplate;
import com.hsny.common.constant.ErrorCode;
import com.hsny.common.vo.ResultVo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.UnsupportedEncodingException;
import java.util.*;
/**
* @Author ouzhicheng
* @Date 2018/12/13 11:20
*/
@Component
public class GeTuiUtil {
//定义常量, appId、appKey、masterSecret 采用本文档 "第二步 获取访问凭证 "中获得的应用配置
private static String appId;
private static String appKey;
private static String masterSecret;
private static String url;
@Value("${getui.appId}")
public void setAppId(String appId2) {
appId = appId2;
}
@Value("${getui.appKey}")
public void setAppKey(String appKey2) {
appKey = appKey2;
}
@Value("${getui.masterSecret}")
public void setMasterSecret(String masterSecret2) {
masterSecret = masterSecret2;
}
@Value("${getui.url}")
public void setUrl(String url2) {
url = url2;
}
/**
* 推送到所有app用户
* @param title 通知栏主题
* @param content 通知栏内容
* @param transmissionContent 透传消息
* @return
*/
public static Map pushMessageToApp(String title,String content,String transmissionContent){
try{
IGtPush push = new IGtPush(url, appKey, masterSecret);
push.connect();
// 定义"点击链接打开通知模板",并设置标题、内容、链接
NotificationTemplate template=notificationTemplate(title,content,transmissionContent);
List<String> appIds = new ArrayList<String>();
appIds.add(appId);
// 定义"AppMessage"类型消息对象,设置消息内容模板、发送的目标App列表、是否支持离线发送、以及离线消息有效期(单位毫秒)
AppMessage message = new AppMessage();
message.setData(template);
message.setAppIdList(appIds);
message.setOffline(true);
//离线过期时间 24h
message.setOfflineExpireTime(1000 * 60 * 24);
IPushResult ret = push.pushMessageToApp(message);
System.out.println(ret.getResponse().toString());
return ret.getResponse();
}catch (Exception e){
e.printStackTrace();
return null;
}
}
/**
* 推送到单个app用户
* @param title 通知栏主题
* @param content 通知栏内容
* @param transmissionContent 透传消息
* @param clientId 推送客户端id
* @return
*/
public static Map pushMessageToSingle(String title,String content,String transmissionContent,String clientId) throws Exception{
IGtPush push = new IGtPush(url, appKey, masterSecret);
NotificationTemplate template=notificationTemplate(title,content,transmissionContent);
SingleMessage message = new SingleMessage();
message.setOffline(true);
// 离线有效时间,单位为毫秒,可选
message.setOfflineExpireTime(24 * 3600 * 1000);
message.setData(template);
// 可选,1为wifi,0为不限制网络环境。根据手机处于的网络情况,决定是否下发
message.setPushNetWorkType(0);
Target target = new Target();
target.setAppId(appId);
target.setClientId(clientId);
//别名推送
//target.setAlias(Alias);
IPushResult ret = null;
try {
ret = push.pushMessageToSingle(message, target);
} catch (RequestException e) {
e.printStackTrace();
ret = push.pushMessageToSingle(message, target, e.getRequestId());
}
if (ret != null) {
return ret.getResponse();
} else {
return null;
}
}
private static NotificationTemplate notificationTemplate(String title,String content,String transmissionContent) {
NotificationTemplate template = new NotificationTemplate();
// 设置APPID与APPKEY
template.setAppId(appId);
template.setAppkey(appKey);
// 设置通知栏标题与内容
template.setTitle(title);
template.setText(content);
// 配置通知栏图标
template.setLogo("icon.png");
// 配置通知栏网络图标
template.setLogoUrl("");
// 设置通知是否响铃,震动,或者可清除
template.setIsRing(true);
template.setIsVibrate(true);
template.setIsClearable(true);
// 透传消息设置,1为强制启动应用,客户端接收到消息后就会立即启动应用;2为等待应用启动
template.setTransmissionType(1);
template.setTransmissionContent(transmissionContent);
// 设置定时展示时间
// template.setDuration("2015-01-16 11:40:00", "2015-01-16 12:24:00");
return template;
}
}
ios推送可见官方文档
最后
以上就是要减肥白猫最近收集整理的关于消息推送-个推 简易工具类的全部内容,更多相关消息推送-个推内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复