个推消息推送
来源:互联网 发布:撒旦先生 知乎 编辑:程序博客网 时间:2024/04/30 16:23
最近使用个推推送手机端消息,根据个推官网下载java后台的sdk。其中需要jar包如下图:
代码如下:
package com.gsafety.message.util;
import java.util.ArrayList;
import java.util.List;
import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.AppMessage;
import com.gexin.rp.sdk.base.impl.ListMessage;
import com.gexin.rp.sdk.base.impl.Target;
import com.gexin.rp.sdk.base.payload.APNPayload;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.NotificationTemplate;
import com.gexin.rp.sdk.template.TransmissionTemplate;
public class PushtoList {
static String appId = "tzOSzDxGeh5kGZ6rXTO9z6"; //官网注册获取的appid
static String appkey = "iufTKcv4DO6lU4aZ6Ukeb6"; //官网注册获取的appkey
static String master = "QMRk3MEXla9o7o99LlKv42"; //官网注册获取的master
static String host = "http://sdk.open.api.igexin.com/apiex.htm";
//安卓端推送 List<String> userList 用户手机中的个推唯一编码
public static void pushMessage(String tittle, String content, String other,
List<String> userList) {
System.setProperty("gexin.rp.sdk.pushlist.needDetails", "true");
IGtPush push = new IGtPush(host, appkey, master);
NotificationTemplate tt = new NotificationTemplate();
tt.setTitle(tittle);
tt.setText(content);
tt.setTransmissionContent(other);
tt.setAppId(appId);
tt.setAppkey(appkey);
tt.setLogo("icon.png");
tt.setLogoUrl("");
tt.setIsRing(true);
tt.setIsVibrate(true);
tt.setIsClearable(true);
tt.setTransmissionType(1);
ListMessage message = new ListMessage();
message.setData(tt);
// 设置消息离线,并设置离线时间
message.setOffline(true);
// 离线有效时间,单位为毫秒,可选
message.setOfflineExpireTime(24 * 1000 * 3600);
// 配置推送目标
List<Target> targets = new ArrayList<Target>();
for (int i = 0; i < userList.size(); i++) {
Target target = new Target();
target.setAppId(appId);
target.setClientId(userList.get(i));
targets.add(target);
}
// 获取taskID
String taskId = push.getContentId(message);
// 使用taskID对目标进行推送
IPushResult ret = push.pushMessageToList(taskId, targets);
// 打印服务器返回信息
System.out.println(ret.getResponse().toString());
}
/**
* 根据省份或者城市推送 安卓版本
*
* @param tt
* @param city
*/
public static void pushMessage(String tittle, String content, String other,
String city) {
System.setProperty("gexin.rp.sdk.pushlist.needDetails", "true");
IGtPush push = new IGtPush(host, appkey, master);
NotificationTemplate tt = new NotificationTemplate();
tt.setTitle(tittle);
tt.setText(content);
tt.setTransmissionContent(other);
tt.setAppId(appId);
tt.setAppkey(appkey);
tt.setLogo("icon.png");
tt.setLogoUrl("");
tt.setIsRing(true);
tt.setIsVibrate(true);
tt.setIsClearable(true);
tt.setTransmissionType(1);
AppMessage message = new AppMessage();
message.setData(tt);
// 设置消息离线,并设置离线时间
message.setOffline(true);
// 离线有效时间,单位为毫秒,可选
message.setOfflineExpireTime(24 * 1000 * 3600);
// 设置推送目标条件过滤
List<String> appIdList = new ArrayList<String>();
List<String> provinceList = new ArrayList<String>();
appIdList.add(appId);
// 设置省份
provinceList.add(city);
message.setAppIdList(appIdList);
message.setProvinceList(provinceList);
IPushResult ret = push.pushMessageToApp(message);
System.out.println(ret.getResponse().toString());
}
//IOS端推送 List<String> userList 用户手机中的个推唯一编码
public static void apnpush(String tittle, String content, String other,
List<String> userList) {
IGtPush push = new IGtPush(host, appkey, master);
TransmissionTemplate template = new TransmissionTemplate();
template.setAppId(appId);
template.setAppkey(appkey);
template.setTransmissionContent("透传内容");
template.setTransmissionType(2);
APNPayload payload = new APNPayload();
payload.setBadge(1);
payload.setContentAvailable(1);
payload.setSound("default");
// payload.setCategory("$由客户端定义");
payload.setAlertMsg(new APNPayload.SimpleAlertMsg(content));
// 字典模式使用下者
// payload.setAlertMsg(getDictionaryAlertMsg());
template.setAPNInfo(payload);
ListMessage message = new ListMessage();
message.setData(template);
// 设置消息离线,并设置离线时间
message.setOffline(true);
// 离线有效时间,单位为毫秒,可选
message.setOfflineExpireTime(24 * 1000 * 3600);
String contentId = push.getAPNContentId(appId, message);
System.out.println(contentId);
List<String> dtl = new ArrayList<String>();
dtl = userList;
System.setProperty("gexin.rp.sdk.pushlist.needDetails", "true");
IPushResult ret = push.pushAPNMessageToList(appId, contentId, dtl);
System.out.println(ret.getResponse());
}
//ios端,根据城市编码推送
public static void apnpushCity(String tittle, String content, String other,
String city) {
IGtPush push = new IGtPush(host, appkey, master);
TransmissionTemplate template = new TransmissionTemplate();
template.setAppId(appId);
template.setAppkey(appkey);
template.setTransmissionContent("透传内容");
template.setTransmissionType(2);
APNPayload payload = new APNPayload();
payload.setBadge(1);
payload.setContentAvailable(1);
payload.setSound("default");
// payload.setCategory("$由客户端定义");
payload.setAlertMsg(new APNPayload.SimpleAlertMsg(content));
// 字典模式使用下者
// payload.setAlertMsg(getDictionaryAlertMsg());
template.setAPNInfo(payload);
AppMessage message = new AppMessage();
message.setData(template);
// 设置消息离线,并设置离线时间
message.setOffline(true);
// 离线有效时间,单位为毫秒,可选
message.setOfflineExpireTime(24 * 1000 * 3600);
// 设置推送目标条件过滤
List<String> appIdList = new ArrayList<String>();
List<String> provinceList = new ArrayList<String>();
appIdList.add(appId);
// 设置省份
provinceList.add(city);
message.setAppIdList(appIdList);
message.setProvinceList(provinceList);
IPushResult ret = push.pushMessageToApp(message);
System.out.println(ret.getResponse().toString());
}
}
- 个推消息推送
- 消息推送 “个推集成”
- 消息推送_个推
- 个推App消息推送
- 笔记66--消息推送之个推
- 笔记66--消息推送之个推
- iOS个推消息推送的使用
- H5+个推实现消息推送服务
- dcloud -集成个推 推送消息内容
- 消息推送(个推推送)的原理
- [个推] 使用个推实现服务器端消息推送,推送结果返回分析
- Delphi XE8实现移动端的消息推送(个推)
- android个推消息推送,asp.net调用接口
- HBuilder开发的APP使用个推推送消息
- 个推PC端推送消息至App
- 利用MUI+个推实现APP消息推送
- 个推的推送消息延迟的一个原因记录
- 推送之个推
- OpenCV学习笔记_直方图均衡化cvEqualizeHist
- 设计模式二三事——工厂模式
- 3.表达式
- 数据结构——哈希表
- 二进制转化
- 个推消息推送
- java 遍历hashmap
- js (jQuery) 之 取值
- 图解正向代理、反向代理、透明代理
- 图论问题--求哈密尔顿回路的问题
- JavaBean和EJB的区别
- 2.xilinx sdk使用教程
- RMAN duplicate 方式 做个备库
- 344. Reverse String