示例#1
0
        public static void PushMessageToSingle(string title, string content, string data, string cid)
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            //消息模版:TransmissionTemplate:透传模板
            var template = NotificationTemplateDemo(title, content, data);
            // 单推消息模型

            SingleMessage message = new SingleMessage();

            message.IsOffline         = false;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;      // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //判断是否客户端是否wifi环境下推送,2为4G/3G/2G,1为在WIFI环境下,0为不限制环境
            message.PushNetWorkType = 0;
            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = cid;
            //target.alias = ALIAS;
            try
            {
                push.pushMessageToSingle(message, target);
            }
            catch (RequestException e)
            {
                String requestId = e.RequestId;
                //发送失败后的重发
                push.pushMessageToSingle(message, target, requestId);
            }
        }
示例#2
0
        //private static String DeviceToken = "";  //填写IOS系统的DeviceToken
        /// <summary>
        /// 单个消息推送
        /// </summary>
        /// <param name="TransmissionType">应用启动类型,1:强制应用启动 2:等待应用启动</param>
        /// <param name="TransmissionContent">透传内容</param>
        /// <param name="beginTime">设置通知定时展示时间,结束时间与开始时间相差需大于6分钟,消息推送后,客户端将在指定时间差内展示消息(误差6分钟)</param>
        /// <param name="endTime">设置通知定时展示时间,结束时间与开始时间相差需大于6分钟,消息推送后,客户端将在指定时间差内展示消息(误差6分钟)</param>
        /// <param name="CLIENTID">个推clientId</param>
        public static void PushMessageToSingle(string TransmissionType, string TransmissionTitle, string TransmissionContent, string beginTime, string endTime, string CLIENTID)
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            //消息模版:TransmissionTemplate:透传模板
            TransmissionTemplate template = TransmissionTemplate(TransmissionType, TransmissionTitle, TransmissionContent, beginTime, endTime);
            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;                        // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;            // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //判断是否客户端是否wifi环境下推送,2为4G/3G/2G,1为在WIFI环境下,0为不限制环境
            //message.PushNetWorkType = 1;
            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = CLIENTID;
            //target.alias = ALIAS;
            try
            {
                String pushResult = push.pushMessageToSingle(message, target);
            }
            catch (RequestException e)
            {
                String requestId = e.RequestId;
                //发送失败后的重发
                String pushResult = push.pushMessageToSingle(message, target, requestId);
            }
        }
示例#3
0
        /// <summary>
        /// 2 群组动态
        /// </summary>
        /// <param name="deviceid"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public static async Task PushGroupDynamic(string deviceid, string touid, string msg)
        {
            var currentMethod = "PushGroupDynamic";


            var title   = "群组动态通知";
            var content = "新的群组动态";

            var model = JsonConvert.DeserializeObject <AppGroupDynamic>(msg);

            title = model.GroupName;
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            //消息模版:TransmissionTemplate:透传模板
            var intent = $"intent:#Intent;component=net.cnki.okms/.pages.base.BootActivity;end";


            var getui = new GeTuiMessage
            {
                mtype    = 2,
                mcontent = model,
            };
            TransmissionTemplate template = TransmissionTemplate(title, content, intent, JsonConvert.SerializeObject(getui));

            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data = template;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = deviceid;

            var messageJson = JsonConvert.SerializeObject(message);

            LoggerHelper.AndroidPush($"1.个推-群组动态类消息[{touid}]推送的消息内容为:{Environment.NewLine}{messageJson}");

            try
            {
                String pushResult = push.pushMessageToSingle(message, target);
                LoggerHelper.AndroidPush($"2.个推-群组动态类消息[{touid}]推送的返回结果:{Environment.NewLine}{pushResult}");
            }
            catch (RequestException e)
            {
                String requestId = e.RequestId;
                //发送失败后的重发
                String pushResult = push.pushMessageToSingle(message, target, requestId);
                LoggerHelper.AndroidPush($"3.个推-群组动态类消息[{touid}]发生了异常,重发后,服务端返回结果:----------------" + pushResult);
            }
        }
示例#4
0
        //PushMessageToSingle接口测试代码
        private static void PushMessageToSingle()
        {
            // 推送主类
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            //通知模版:支持TransmissionTemplate、LinkTemplate、NotificationTemplate,此处以TransmissionTemplate为例
            TransmissionTemplate template = new TransmissionTemplate();

            template.AppId               = APPID;       // 应用APPID
            template.AppKey              = APPKEY;      // 应用APPKEY
            template.TransmissionType    = "1";         // 收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动
            template.TransmissionContent = "您需要透传的内容";  // 需要透传的内容

            //iOS推送需要的pushInfo字段
            //template.setPushInfo(actionLocKey, badge, message, sound, payload, locKey, locArgs, launchImage);

            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data = template;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = CLIENTID;

            String pushResult = push.pushMessageToSingle(message, target);

            System.Console.WriteLine("-----------PushMessageToSingle--------------" + pushResult);
        }
示例#5
0
        /// <summary>
        /// PushMessageToSingle接口测试代码
        /// </summary>
        /// <param name="PaltForm">平台类型  1:苹果 2:安卓</param>
        /// <param name="clientId"></param>
        /// <param name="NoticeTitle">通知标题</param>
        /// <param name="NoticeContent">通知内容</param>
        /// <param name="custom_content">自定义内容</param>
        /// <returns></returns>
        public static string PushMessageToSingle(int PaltForm, string clientId, string NoticeTitle, string NoticeContent, string custom_content)
        {
            CLIENTID = clientId;
            // 推送主类
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            /*消息模版:
             *  1.TransmissionTemplate:透传模板
             *  2.LinkTemplate:通知链接模板
             *  3.NotificationTemplate:通知透传模板
             *  4.NotyPopLoadTemplate:通知弹框下载模板
             */
            //数据经SDK传给您的客户端,由您写代码决定如何处理展现给用户
            //TransmissionTemplate template = TransmissionTemplateDemo(PaltForm, NoticeTitle, NoticeContent, custom_content);
            //LinkTemplate template = LinkTemplateDemo(NoticeTitle, NoticeContent);
            //NotyPopLoadTemplate template = NotyPopLoadTemplateDemo(NoticeTitle, NoticeContent);

            //在通知栏显示一条含图标、标题等的通知,用户点击后激活您的应用
            NotificationTemplate template = NotificationTemplateDemo(PaltForm, NoticeTitle, NoticeContent, custom_content);

            SingleMessage message = new SingleMessage();

            message.IsOffline         = false;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;      // 离线有效时间,单位为毫秒,可选
            message.Data = template;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = CLIENTID;

            String pushResult = push.pushMessageToSingle(message, target);

            return(pushResult);
        }
示例#6
0
        private static string HOST         = "http://sdk.open.api.igexin.com/apiex.htm"; //HOST:OpenService接口地址

        //PushMessageToSingle接口测试代码
        public static string PushMessageToSingle(string cid, string title, string messageText)
        {
            // 推送主类
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            /*消息模版:
             *  1.TransmissionTemplate:透传模板
             *  2.LinkTemplate:通知链接模板
             *  3.NotificationTemplate:通知透传模板
             *  4.NotyPopLoadTemplate:通知弹框下载模板
             */

            //TransmissionTemplate template =  TransmissionTemplateDemo();
            NotificationTemplate template = NotificationTemplateDemo(title, messageText);
            //LinkTemplate template = LinkTemplateDemo();
            //NotyPopLoadTemplate template = NotyPopLoadTemplateDemo();


            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = false;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;      // 离线有效时间,单位为毫秒,可选
            message.Data = template;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = cid;

            string pushResult = push.pushMessageToSingle(message, target);

            return(pushResult);
        }
示例#7
0
        /// <summary>
        /// 18.个推-工作交办 todolist(群组日程、待办)消息通知(刘静杰)
        /// </summary>
        /// <param name="deviceid"></param>
        /// <param name="touid"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public static async Task PushToDoMessage(string deviceid, string touid, ScheduleModel msg)
        {
            var     currentMethod = "PushToDoMessage";
            IGtPush push          = new IGtPush(HOST, APPKEY, MASTERSECRET);
            var     intent        = $"intent:#Intent;component=net.cnki.okms/.pages.base.BootActivity;end";
            var     title         = "待办任务";
            var     content       = msg.title;

            var getui = new GeTuiMessage
            {
                mtype    = 18,
                mcontent = msg,
            };
            TransmissionTemplate template = TransmissionTemplate(title, content, intent, JsonConvert.SerializeObject(getui));

            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data = template;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = deviceid;

            var messageJson = JsonConvert.SerializeObject(message);

            LoggerHelper.AndroidPush($"1.(个推-待办任务)给[{touid}]推送的内容:" + messageJson);

            try
            {
                String pushResult = push.pushMessageToSingle(message, target);
                LoggerHelper.AndroidPush($"2.(个推-待办任务)给[{touid}]返回结果:" + pushResult);
            }
            catch (RequestException e)
            {
                String requestId = e.RequestId;
                //发送失败后的重发
                String pushResult = push.pushMessageToSingle(message, target, requestId);
                LoggerHelper.AndroidPush($"3.(个推-待办任务)给[{touid}]发生了异常,重发后,服务端返回结果:----------------" + pushResult);
            }
        }
示例#8
0
        public void PushMessageToSingle()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            //消息模版:TransmissionTemplate:透传模板

            NotificationTemplate template = NotificationTemplateDemo();


            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //判断是否客户端是否wifi环境下推送,2为4G/3G/2G,1为在WIFI环境下,0为不限制环境
            //message.PushNetWorkType = 1;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = CLIENTID;
            //target.alias = ALIAS;
            try
            {
                String pushResult = push.pushMessageToSingle(message, target);

                System.Console.WriteLine("-----------------------------------------------");
                System.Console.WriteLine("-----------------------------------------------");
                System.Console.WriteLine("----------------服务端返回结果:" + pushResult);
            }
            catch (RequestException e)
            {
                String requestId = e.RequestId;
                //发送失败后的重发
                String pushResult = push.pushMessageToSingle(message, target, requestId);
                System.Console.WriteLine("-----------------------------------------------");
                System.Console.WriteLine("-----------------------------------------------");
                System.Console.WriteLine("----------------服务端返回结果:" + pushResult);
            }
        }
示例#9
0
        /// <summary>
        /// 16  -->>   公司OA平台发出的消息(杨立旭)
        /// </summary>
        /// <param name="deviceid"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public static async Task PushOANotice(string deviceid, string touid, MessageModel model)
        {
            var currentMethod = "PushOANotice";

            var     title   = "待办任务";// model.SchemeTypeName;
            var     content = model.Content;
            IGtPush push    = new IGtPush(HOST, APPKEY, MASTERSECRET);
            //var intent = $"intent:#Intent;component=net.cnki.okms/.pages.base.BootActivity;end";
            var intent = $"intent:#Intent;component=net.cnki.okms/.pages.base.IndexActivity;S.title={model.Content};S.url={model.DetailUrl};S.levelNoticeTpye=2;end";
            var getui  = new GeTuiMessage
            {
                mtype    = 16,
                mcontent = model,
            };
            TransmissionTemplate template = TransmissionTemplate(title, content, intent, JsonConvert.SerializeObject(getui));
            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;
            message.OfflineExpireTime = 1000 * 3600 * 12;
            message.Data = template;
            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = deviceid;
            var messageJson = JsonConvert.SerializeObject(message);

            LoggerHelper.AndroidPush($"1.个推-OA平台类消息[{touid}]推送的消息内容为:{Environment.NewLine}{messageJson}");
            try
            {
                String pushResult = push.pushMessageToSingle(message, target);
                LoggerHelper.AndroidPush($"2.个推-OA平台类消息[{touid}]推送的返回结果:{Environment.NewLine}{pushResult}");
            }
            catch (RequestException e)
            {
                String requestId = e.RequestId;
                //发送失败后的重发
                String pushResult = push.pushMessageToSingle(message, target, requestId);
                LoggerHelper.AndroidPush($"3.个推-OA平台类消息[{touid}]发生了异常,重发后,服务端返回结果:----------------" + pushResult);
            }
        }
示例#10
0
 public void PushMessageToSingle(string ClientID, string AppID, string AppKey, string MasterSecret)
 {
     try
     {
         IGtPush push = new IGtPush(HOST, AppKey, MasterSecret);
         NotificationTemplate template = NotificationTemplateDemo(AppID, AppKey);
         SingleMessage        message  = new SingleMessage();
         message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
         message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
         message.Data = template;
         //判断是否客户端是否wifi环境下推送,2为4G/3G/2G,1为在WIFI环境下,0为不限制环境
         message.PushNetWorkType = 0;
         com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
         target.appId    = AppID;
         target.clientId = ClientID;
         try
         {
             String pushResult = push.pushMessageToSingle(message, target);
             // System.Console.WriteLine("-----------------------------------------------");
             // System.Console.WriteLine("-----------------------------------------------");
             // System.Console.WriteLine("----------------服务端返回结果:" + pushResult);
             Utils.log("----------------服务端返回结果:" + ClientID + "----" + pushResult);
         }
         catch (RequestException e)
         {
             String requestId = e.RequestId;
             //发送失败后的重发
             String pushResult = push.pushMessageToSingle(message, target, requestId);
             // System.Console.WriteLine("-----------------------------------------------3");
             // System.Console.WriteLine("-----------------------------------------------");
             // System.Console.WriteLine("----------------服务端返回结果:" + pushResult);
         }
     }
     catch (Exception ex)
     {
         Utils.log("PushMessageToSingle Error:" + ex.Message);
     }
 }
        private static String DeviceToken = "";  //填写IOS系统的DeviceToken
        /// <summary>
        /// 对单个用户的推送
        /// </summary>
        /// <returns></returns>
        public static string PushMessageToSingle()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            //消息模版:网页模板
            LinkTemplate template = LinkTemplateDemo();
            // 单推消息模型
            SingleMessage message = new SingleMessage();

            // 用户当前不在线时,是否离线存储,可选
            message.IsOffline = true;
            // 离线有效时间,单位为毫秒,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;
            message.Data = template;
            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = CLIENTID;
            //target.alias = ALIAS;
            try
            {
                string pushResult = push.pushMessageToSingle(message, target);
                return("发送成功" + pushResult);
                //System.Console.WriteLine("-----------------------------------------------");
                //System.Console.WriteLine("-----------------------------------------------");
                //System.Console.WriteLine("----------------服务端返回结果:" + pushResult);
            }
            catch (RequestException e)
            {
                string requestId = e.RequestId;

                //发送失败后的重发
                string pushResult = push.pushMessageToSingle(message, target, requestId);
                return("失败重发" + pushResult);
                //System.Console.WriteLine("-----------------------------------------------");
                //System.Console.WriteLine("-----------------------------------------------");
                //System.Console.WriteLine("----------------服务端返回结果:" + pushResult);
            }
        }
示例#12
0
        /// <summary>
        /// 推送单个用户
        /// </summary>
        /// <param name="template">模板内容</param>
        public string PushSingle(ITemplate template)
        {
            IGtPush       push    = new IGtPush("", APPKEY, MASTERSECRET);
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;             // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //message.PushNetWorkType = 1; //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境
            Target target = new Target();

            target.appId    = APPID;
            target.clientId = CLIENTID[0];
            return(push.pushMessageToSingle(message, target));
        }
示例#13
0
 //PushMessageToSingle接口测试代码
 private static string PushMessageToSingle(string strAdvice, string clientID)
 {
     // 推送主类
     IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
   //  LinkTemplate template = LinkTemplateDemo(strAdvice);
     NotificationTemplate notificationTemplate = NotificationTemplateDemo(strAdvice);
     SingleMessage message = new SingleMessage();
     // 用户当前不在线时,是否离线存储,可选
     message.IsOffline = false;
     // 离线有效时间,单位为毫秒,可选
     message.OfflineExpireTime = 1000 * 3600 * 12;
     message.Data = notificationTemplate;
     com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
     target.appId = APPID;
     target.clientId = clientID;
     String pushResult = push.pushMessageToSingle(message, target);
     return pushResult;
 }
示例#14
0
        /// <summary>
        /// 给单个用户发送推送(DEMO)
        /// </summary>
        private static void PushMessageToSingle()
        {
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);
            TransmissionTemplate template = TransmissionTemplateDemo();

            template.TransmissionContent = "测试";

            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;             // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选
            message.Data            = template;
            message.PushNetWorkType = 0;                  //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境
            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = CLIENTID;
            String pushResult = push.pushMessageToSingle(message, target);
        }
示例#15
0
        public SendAppMessageResultModel SendAppMessage(SendAppContentModel sendAppMessageModel)
        {
            IGtPush push = new IGtPush(Host, Appkey, Mastersecret);

            Target target = new Target();

            target.appId    = Appid;
            target.clientId = sendAppMessageModel.ClientId;

            ITemplate template = null;

            if (sendAppMessageModel.ClientType == "A")
            {
                //template = NotificationTemplateDemo(sendAppMessageModel.Title, sendAppMessageModel.Text,
                //    sendAppMessageModel.Content);

                template = TransmissionTemplateDemo(sendAppMessageModel.Title, sendAppMessageModel.Text,
                                                    sendAppMessageModel.Content);
            }
            else
            {
                template = TransmissionTemplateIOS(sendAppMessageModel.Title, sendAppMessageModel.Content,
                                                   sendAppMessageModel.Text);
            }


            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;             // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //判断是否客户端是否wifi环境下推送,2为4G/3G/2G,1为在WIFI环境下,0为不限制环境
            //message.PushNetWorkType = 1;

            string pushResult = push.pushMessageToSingle(message, target);

            SendAppMessageResultModel result = JsonConvert.DeserializeObject <SendAppMessageResultModel>(pushResult);

            result.ResultInfo = pushResult;
            return(result);
        }
示例#16
0
        /// <summary>
        /// 发送推送[目前仅支持传透和通知,支持Android和IOS]
        /// </summary>
        /// <param name="condtion"></param>
        internal static SendGeTuiPushReplay PushMessage(SendGeTuiPushBySetRequestModel condtion)
        {
            SendGeTuiPushReplay result      = new SendGeTuiPushReplay();
            IGtPush             push        = new IGtPush(HOST, APPKEY, MASTERSECRET);
            ListMessage         listMessage = new ListMessage()
            {
                IsOffline         = IsOffline,
                OfflineExpireTime = OfflineExpireTime,
                PushNetWorkType   = PushNetWorkType
            };
            SingleMessage singleMessage = new SingleMessage()
            {
                IsOffline         = IsOffline,
                OfflineExpireTime = OfflineExpireTime,
                PushNetWorkType   = PushNetWorkType
            };
            TransmissionTemplate tt = TransmissionTemplateDemo(); //传透
            NotificationTemplate nt = NotificationTemplateDemo(); //通知

            if (condtion.sets.Count > 0)
            {
                //分离请求中的设备类型
                List <GeTuiSetModel> ios     = condtion.sets.Where(p => p.deviceType != EnumUserDeviceType.Android).ToList();
                List <GeTuiSetModel> android = condtion.sets.Where(p => p.deviceType == EnumUserDeviceType.Android).ToList();

                //IOS和安卓分开处理
                if (ios.Count > 0)
                {
                    //IOS设备发送
                    //IOS需使用传透方式来发送
                    APNTemplate        template   = new APNTemplate();
                    APNPayload         apnpayload = new APNPayload();
                    DictionaryAlertMsg alertMsg   = new DictionaryAlertMsg();
                    alertMsg.Body         = condtion.msg;
                    alertMsg.ActionLocKey = "";
                    alertMsg.LocKey       = "";
                    alertMsg.addLocArg("");
                    alertMsg.LaunchImage = "";
                    //IOS8.2支持字段
                    alertMsg.Title       = condtion.title;
                    alertMsg.TitleLocKey = "";
                    alertMsg.addTitleLocArg("");

                    apnpayload.AlertMsg         = alertMsg;
                    apnpayload.Badge            = 1;
                    apnpayload.ContentAvailable = 1;
                    //apnpayload.Category = "";
                    apnpayload.Sound = "sms-received1.caf";
                    apnpayload.addCustomMsg("customInfo", condtion.customInfo);
                    template.setAPNInfo(apnpayload);
                    template.AppId  = APPID;
                    template.AppKey = APPKEY;

                    if (ios.Count > 1)
                    {
                        //批量
                        listMessage.Data = template;
                        List <string> devicetokenlist = new List <string>();
                        foreach (GeTuiSetModel set in ios)
                        {
                            devicetokenlist.Add(set.clientId);
                        }
                        string contentId = push.getAPNContentId(APPID, listMessage);
                        result.sentResultIos = push.pushAPNMessageToList(APPID, contentId, devicetokenlist);
                    }
                    else if (ios.Count == 1)
                    {
                        //单个
                        singleMessage.Data   = template;
                        result.sentResultIos = push.pushAPNMessageToSingle(APPID, ios[0].clientId, singleMessage);
                    }
                }
                if (android.Count > 0)
                {
                    switch (condtion.messageType)
                    {
                    case EnumPushMessagesType.透传消息:
                        tt.TransmissionContent = condtion.msg;
                        listMessage.Data       = tt;
                        singleMessage.Data     = tt;
                        break;

                    case EnumPushMessagesType.通知:
                        nt.Title = condtion.title;
                        nt.Text  = condtion.msg;
                        nt.TransmissionContent = Newtonsoft.Json.JsonConvert.SerializeObject(condtion.customInfo);
                        listMessage.Data       = nt;
                        singleMessage.Data     = nt;
                        break;
                    }

                    //安卓设备发送
                    if (android.Count > 1)
                    {
                        //多个用户
                        List <Target> ts = new List <Target>();
                        foreach (GeTuiSetModel set in android)
                        {
                            ts.Add(new Target()
                            {
                                appId    = APPID,
                                clientId = set.clientId
                            });
                        }
                        string contentId = push.getContentId(listMessage, "ToList_" + DateTime.Now.ToString("yyyyMMddHHmmss"));
                        result.sentResultAndroid = push.pushMessageToList(contentId, ts);
                    }
                    else if (android.Count == 1)
                    {
                        //单个用户
                        Target t = new Target();
                        t.appId    = APPID;
                        t.clientId = android[0].clientId;
                        result.sentResultAndroid = push.pushMessageToSingle(singleMessage, t);
                    }
                }
                result.ReturnCode = EnumErrorCode.Success;
            }
            else
            {
                result.ReturnCode    = EnumErrorCode.EmptyDate;
                result.ReturnMessage = "没有设置任何的接收者";
                SysManagerService.SysSaveSysLog("推送消息:[" + condtion.msg + "]没有设置任何的接收者", EnumSysLogType.警告);
            }
            return(result);
        }
示例#17
0
        /// <summary>
        /// 15  -->>   自建群编辑通知(刘静杰)
        /// </summary>
        /// <param name="deviceid"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public static async Task PushSelfGroupNoticeMore(string deviceid, string touid, SelfGroupNoticeMore model)
        {
            var currentMethod = "PushSelfGroupNoticeMore";
            var title         = "群组动态通知";
            var content       = "群组动态";

            title = model.groupname;
            if (model.type == 0)
            {
                content = model.membername + "新加入群组";
            }
            else if (model.type == 1)
            {
                content = model.membername + "已被移出群组";
            }
            else if (model.type == 2)
            {
                content = model.membername + "退出群组";
            }
            else if (model.type == 3)
            {
                content = "群组已经被解散";
            }
            else if (model.type == 4)
            {
                content = "修改群组信息动态";
            }

            IGtPush push   = new IGtPush(HOST, APPKEY, MASTERSECRET);
            var     intent = $"intent:#Intent;component=net.cnki.okms/.pages.base.BootActivity;end";
            var     getui  = new GeTuiMessage
            {
                mtype    = 15,
                mcontent = model,
            };
            TransmissionTemplate template = TransmissionTemplate(title, content, intent, JsonConvert.SerializeObject(getui));
            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;
            message.OfflineExpireTime = 1000 * 3600 * 12;
            message.Data = template;
            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = deviceid;
            var messageJson = JsonConvert.SerializeObject(message);

            LoggerHelper.AndroidPush($"1.个推-自建群编辑通知类消息[{touid}]推送的消息内容为:{Environment.NewLine}{messageJson}");
            try
            {
                String pushResult = push.pushMessageToSingle(message, target);
                LoggerHelper.AndroidPush($"2.个推-自建群编辑通知类消息[{touid}]推送的返回结果:{Environment.NewLine}{pushResult}");
            }
            catch (RequestException e)
            {
                String requestId = e.RequestId;
                //发送失败后的重发
                String pushResult = push.pushMessageToSingle(message, target, requestId);
                LoggerHelper.AndroidPush($"3.个推-自建群编辑通知类消息[{touid}]发生了异常,重发后,服务端返回结果:----------------" + pushResult);
            }
        }
示例#18
0
        /// <summary>
        /// 6 - 12 研讨类消息
        /// </summary>
        /// <param name="deviceid"></param>
        /// <param name="msgtype"></param>
        /// <param name="msg"></param>
        /// <param name="touid"></param>
        /// <returns></returns>
        public static async Task PushDiscussMessage(string deviceid, int msgtype, string msg, string touid)
        {
            var    currentMethod = "PushDiscussMessage";
            object model         = null;
            var    content       = "新的研讨消息";

            if (msgtype == 6)
            {
                var m = JsonConvert.DeserializeObject <AddDiscuss>(msg);
                content = m.Name + "有新的研讨消息";
                model   = m;
            }
            else if (msgtype == 7)
            {
                var m = JsonConvert.DeserializeObject <DeleteDiscuss>(msg);
                content = m.Name + "有新的研讨消息";
                model   = m;
            }
            else if (msgtype == 8)
            {
                var m = JsonConvert.DeserializeObject <ModifyDiscuss>(msg);
                content = m.Name + "有新的研讨消息";
                model   = m;
            }
            else if (msgtype == 9)
            {
                var m = JsonConvert.DeserializeObject <FinishDiscuss>(msg);
                content = m.Name + "有新的研讨消息";
                model   = m;
            }
            else if (msgtype == 10)
            {
                var m = JsonConvert.DeserializeObject <ActivateDiscuss>(msg);
                content = m.Name + "有新的研讨消息";
                model   = m;
            }
            else if (msgtype == 11)
            {
                var m = JsonConvert.DeserializeObject <RemindDiscuss>(msg);
                content = m.Name + "有新的研讨消息";
                model   = m;
            }
            else if (msgtype == 12)
            {
                var m = JsonConvert.DeserializeObject <Note>(msg);
                content = m.Title + "有新的研讨消息";
                model   = m;
            }



            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            //消息模版:TransmissionTemplate:透传模板
            var intent = $"intent:#Intent;component=net.cnki.okms/.pages.base.BootActivity;end";
            var title  = "协同研讨";

            var getui = new GeTuiMessage
            {
                mtype    = msgtype,
                mcontent = model,
            };

            TransmissionTemplate template = TransmissionTemplate(title, content, intent, JsonConvert.SerializeObject(getui));



            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //判断是否客户端是否wifi环境下推送,2为4G/3G/2G,1为在WIFI环境下,0为不限制环境
            //message.PushNetWorkType = 1;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = deviceid;
            //target.alias = ALIAS;

            var messageJson = JsonConvert.SerializeObject(message);

            LoggerHelper.AndroidPush($"1.个推-研讨类消息[{touid}]推送的消息内容为:{Environment.NewLine}{messageJson}");

            try
            {
                String pushResult = push.pushMessageToSingle(message, target);
                LoggerHelper.AndroidPush($"2.(个推-研讨类消息)给[{touid}]返回结果:" + pushResult);
            }
            catch (RequestException e)
            {
                String requestId = e.RequestId;
                //发送失败后的重发
                String pushResult = push.pushMessageToSingle(message, target, requestId);
                LoggerHelper.AndroidPush($"3.(个推-研讨类消息)给[{touid}]发生了异常,重发后,服务端返回结果:----------------" + pushResult);
            }
        }
示例#19
0
        /// <summary>
        /// 1.个推-聊天消息
        /// </summary>
        /// <param name="deviceid"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public static async Task PushMessageToSingle(string touid, string deviceid, Msg msg)
        {
            var currentMethod = "PushMessageToSingle";
            //LoggerHelper.AndroidPush($"0.开始给[{touid}]推送Android消息{Environment.NewLine},cliendid={deviceid}");
            IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET);

            //消息模版:TransmissionTemplate:透传模板
            //var intent = $"intent:#Intent;component=net.cnki.okms/.pages.base.BootActivity;end";
            var intent         = $"intent:#Intent;component=net.cnki.okms/.pages.base.IndexActivity;S.friendId={msg.fromuid};S.friendName={msg.fromrealname};S.isGroup=0;S.levelNoticeTpye=1;end";
            var title          = msg.fromrealname;
            var content        = "";
            var fromPersonName = "";

            if (msg.isgroup == 1)
            {
                title          = msg.torealname;
                fromPersonName = msg.fromrealname + ":";
            }
            content = fromPersonName + msg.msg;
            if (msg.msgtype == 1)
            {
                content = fromPersonName + "[图片]";
            }
            else if (msg.msgtype == 2)
            {
                content = fromPersonName + "[文件]";
            }
            else if (msg.msgtype == 4)
            {
                content = fromPersonName + "[语音]";
            }
            else if (msg.msgtype == 5)
            {
                content = fromPersonName + "[地图签到]";
            }
            else if (msg.msgtype == 3)
            {
                content = fromPersonName + "[图片]";
            }

            var getui = new GeTuiMessage
            {
                mtype    = 1,
                mcontent = msg,
            };

            if (msg.isgroup == 1)
            {
                intent = $"intent:#Intent;component=net.cnki.okms/.pages.base.IndexActivity;S.friendId={msg.touid};S.friendName={msg.torealname};S.isGroup=1;S.levelNoticeTpye=1;end";
                //template = TransmissionTemplate(msg.torealname, msg.msg, intent, JsonConvert.SerializeObject(msg));
            }
            TransmissionTemplate template = TransmissionTemplate(title, content, intent, JsonConvert.SerializeObject(getui));



            // 单推消息模型
            SingleMessage message = new SingleMessage();

            message.IsOffline         = true;                 // 用户当前不在线时,是否离线存储,可选
            message.OfflineExpireTime = 1000 * 3600 * 12;     // 离线有效时间,单位为毫秒,可选
            message.Data = template;
            //判断是否客户端是否wifi环境下推送,2为4G/3G/2G,1为在WIFI环境下,0为不限制环境
            //message.PushNetWorkType = 1;

            com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target();
            target.appId    = APPID;
            target.clientId = deviceid;
            //target.alias = ALIAS;

            var messageJson = JsonConvert.SerializeObject(message);

            //LoggerHelper.AndroidPush($"1.给[{touid}]推送的消息内容为:{Environment.NewLine}{messageJson}");

            try
            {
                String pushResult = push.pushMessageToSingle(message, target);
                //LoggerHelper.AndroidPush($"2.给[{touid}]推送的消息返回结果为{Environment.NewLine}{pushResult}");

                //_dataService.InsertGeguiLog(msg.fromuid, touid, msg.msgtime, msg.id0, "android", deviceid, messageJson);
            }
            catch (RequestException e)
            {
                String requestId = e.RequestId;
                //发送失败后的重发
                String pushResult = push.pushMessageToSingle(message, target, requestId);
                LoggerHelper.AndroidPush($"3.给[{touid}]推送发生了异常,重发后,服务端返回结果{Environment.NewLine}{pushResult}");
            }
        }