概述
本工具类只是抽取了官方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推送可见官方文档
最后
以上就是要减肥白猫为你收集整理的消息推送-个推 简易工具类的全部内容,希望文章能够帮你解决消息推送-个推 简易工具类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复