移动端消息推送接口–个推
参考:
个推文档说明:http://docs.getui.com/pages/viewpage.action?pageId=589866
dll:本博客下对应的名称资源下载资源
接口中引用封装方法
//移动端监听用户操作
//给用户绑定ClientId保存数据库
//移动端跟服务器通过ClientId令牌作为唯一标识符进行连接
//userlist user对象集合 取ClientId属性
//title标题
//text内容
GeTuiS gs = new GeTuiS();
gs.GeTui(userlist,title,text);
//
//
//APPID ,APPKEY ,MASTERSECRET 详看个推官网注册
//
using com.igetui.api.openservice;
using com.igetui.api.openservice.igetui;
using com.igetui.api.openservice.igetui.template;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using WeBApi.Models;
namespace WeBApi
{
public class GeTuiS
{
/// 个推参数定义
//http的域名
private static String HOST = "http://sdk.open.api.igexin.com/apiex.htm";
private static String APPID = "****************";
private static String APPKEY = "****************";
private static String MASTERSECRET = "****************";
//个推方法入口
public void GeTui(List<user> users, string title, string text)
{
//toList接口每个用户状态返回是否开启,可选
Console.OutputEncoding = Encoding.GetEncoding(936);
Environment.SetEnvironmentVariable("needDetails", "true");
//对指定列表用户推送
PushMessageToList(users, title, text);
}
//对指定列表用户推送
//PushMessageToList接口测试代码
private static void PushMessageToList(List<user> users, string title, string text)
{
// 推送主类(方式1,不可与方式2共存)
IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
// 推送主类(方式2,不可与方式1共存)此方式可通过获取服务端地址列表判断最快域名后进行消息推送,每10分钟检查一次最快域名
//IGtPush push = new IGtPush("",APPKEY,MASTERSECRET);
ListMessage message = new ListMessage();
//推送信息
NotificationTemplate template = NotificationTemplateDemo(title, text);
// 用户当前不在线时,是否离线存储,可选
message.IsOffline = true;
// 离线有效时间,单位为毫秒,可选
message.OfflineExpireTime = 1000 * 3600 * 12;
message.Data = template;
//message.PushNetWorkType = 0; //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为不限制网络环境。
//设置接收者
List<com.igetui.api.openservice.igetui.Target> targetList = new List<com.igetui.api.openservice.igetui.Target>();
for(int i = 0; i< users.Count(); i++) {
if (!string.IsNullOrEmpty(users[i].ClientId)) {
com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target();
target1.appId = APPID;
target1.clientId = users[i].ClientId;
targetList.Add(target1);
}
}
String contentId = push.getContentId(message);
String pushResult = push.pushMessageToList(contentId, targetList);
System.Console.WriteLine("-----------------------------------------------");
System.Console.WriteLine("服务端返回结果:" + pushResult);
}
//通知透传模板动作内容
public static NotificationTemplate NotificationTemplateDemo(string title, string text)
{
NotificationTemplate template = new NotificationTemplate();
template.AppId = APPID;
template.AppKey = APPKEY;
//通知栏标题
template.Title = title;
//通知栏内容
template.Text = text;
//通知栏显示本地图片
template.Logo = "";
//通知栏显示网络图标
template.LogoURL = "";
//应用启动类型,1:强制应用启动 2:等待应用启动
template.TransmissionType = 1;
//透传内容
template.TransmissionContent = text;
//接收到消息是否响铃,true:响铃 false:不响铃
template.IsRing = true;
//接收到消息是否震动,true:震动 false:不震动
template.IsVibrate = true;
//接收到消息是否可清除,true:可清除 false:不可清除
template.IsClearable = true;
//设置通知定时展示时间,结束时间与开始时间相差需大于6分钟,消息推送后,客户端将在指定时间差内展示消息(误差6分钟)
string time1 = DateTime.Now.AddDays(-1).ToString();
string time2 = DateTime.Now.AddDays(+1).ToString();
String begin = time1;
String end = time2;
template.setDuration(begin, end);
return template;
}
}
}