移动端消息推送接口

移动端消息推送接口–个推

参考:
个推文档说明: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;
        }

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值