コード例 #1
0
        /// <summary>
        /// 初始化IOS通知实体
        /// </summary>
        /// <param name="reqModel"></param>
        /// <returns></returns>
        private static UMengPushModel IOSModelInit(UMengSendMsgModel reqModel)
        {
            UMengPushModel iosModel = new UMengPushModel
            {
                appkey      = AppIosKey,
                description = reqModel.Description,
                payload     = new UMengPushIOSContentModel()
                {
                    aps = new UMengPushIOSApsModel
                    {
                        alert = new UMengPushIOSMsgModel
                        {
                            title = reqModel.Title
                                    //,body = reqModel.Text
                        }
                    },
                    ExtraData = new UMengPushIOSCustomData
                    {
                        Title = reqModel.
                                Title, Content = reqModel.Text
                    }
                }
            };

            return(iosModel);
        }
コード例 #2
0
        /// <summary>
        /// 初始化安卓通知实体
        /// </summary>
        /// <param name="reqModel"></param>
        /// <returns></returns>
        private static UMengPushModel AndroidModelInit(UMengSendMsgModel reqModel)
        {
            UMengPushModel androidModel = new UMengPushModel
            {
                appkey      = AppAndroidKey,
                description = reqModel.Description,
                payload     = new UMengPushAndroidContentModel
                {
                    display_type = UMengPushContentTypeEnum.notification.ToString(),
                    extra        = new ExtraBody(),
                    body         = new UMengPushAndroidBodyModel
                    {
                        ticker     = "WXQ在线",
                        title      = reqModel.Title,
                        text       = reqModel.Title,
                        after_open = reqModel.AfterOpen.ToString(),
                        activity   = reqModel.Activity,
                        url        = reqModel.Url,
                        custom     = reqModel.Custom
                    }
                }
            };

            return(androidModel);
        }
コード例 #3
0
ファイル: UMengTools.cs プロジェクト: wang2650/Bap
 /// <summary>
 /// 初始化类型
 /// </summary>
 /// <param name="pushModel"></param>
 /// <param name="deviceTokens"></param>
 /// <param name="equipmentType">文件播必传</param>
 public static void InitPushModelByDeviceTokens(UMengPushModel pushModel, List <string> deviceTokens, EquipmentTypeEnum equipmentType)
 {
     if (pushModel == null)
     {
         pushModel = new UMengPushModel();
     }
     if (deviceTokens == null || deviceTokens.Count == 0)
     {
         pushModel.type = UMengPushTypeEnum.broadcast.ToString();
     }
     else if (deviceTokens.Count == 1)
     {
         //单播
         pushModel.type          = UMengPushTypeEnum.unicast.ToString();
         pushModel.device_tokens = deviceTokens[0];
     }
     else if (deviceTokens.Count > 1 && deviceTokens.Count < 500)
     {
         //列播
         pushModel.type          = UMengPushTypeEnum.listcast.ToString();
         pushModel.device_tokens = string.Join(",", deviceTokens.ToArray());
     }
     else if (deviceTokens.Count > 500)
     {
         //文件播
         pushModel.type = UMengPushTypeEnum.filecast.ToString();
         //上传文件后返回的file_id
         var response = Upload(pushModel.appkey, deviceTokens, equipmentType);
         if (response.ret.Equals("SUCCESS") && !string.IsNullOrEmpty(response.data.file_id))
         {
             pushModel.file_id = response.data.file_id;
         }
     }
 }
コード例 #4
0
        /// <summary>
        /// 通过多个设备号发送ios推送
        /// </summary>
        /// <param name="reqModel"></param>
        /// <returns></returns>
        public static bool PushNotoficationByDeviceTokens(UMengSendMsgModel reqModel)
        {
            UMengPushModel iosModel = IOSModelInit(reqModel);

            UMengTools.InitPushModelByDeviceTokens(iosModel, reqModel.DeviceTokens, EquipmentTypeEnum.IOS);
            UMengResponseModel model = UMengTools.UMengPostRequest(UMengUrlList.ApiSend, EquipmentTypeEnum.IOS, iosModel);

            return(model != null && model.ret.Equals("SUCCESS"));
        }
コード例 #5
0
        /// <summary>
        /// 通过多个用户发送ios推送
        /// </summary>
        /// <param name="reqModel"></param>
        /// <returns></returns>
        public static bool PushNotoficationByUsers(UMengSendMsgModel reqModel)
        {
            UMengPushModel iosModel = IOSModelInit(reqModel);

            UMengTools.InitPushModelByUsers(iosModel, reqModel.DeviceTokens, EquipmentTypeEnum.IOS);
            UMengResponseModel model = UMengTools.UMengPostRequest(UMengUrlList.ApiSend, EquipmentTypeEnum.IOS, iosModel);

            //2010:与alias对应的device_tokens为空
            //在单播的时候,如果安卓的用户推送给IOS设备,则会返回2010错误
            return(model != null && (model.ret.Equals("SUCCESS") || model.data.error_code == "2010"));
        }
コード例 #6
0
ファイル: UMengTools.cs プロジェクト: wang2650/Bap
 /// <summary>
 /// 初始化类型
 /// </summary>
 /// <param name="pushModel"></param>
 /// <param name="deviceTokens"></param>
 /// <param name="equipmentType">文件播必传</param>
 public static void InitPushModelByUsers(UMengPushModel pushModel, List <string> deviceTokens, EquipmentTypeEnum equipmentType)
 {
     if (pushModel == null || deviceTokens == null || deviceTokens.Count < 1)
     {
         return;
     }
     //customizedcast(通过开发者自有的alias进行推送)
     pushModel.type       = UMengPushTypeEnum.customizedcast.ToString();
     pushModel.alias_type = "AliasTypeXiaoYi";
     if (deviceTokens.Count < 51)
     {
         //使用默认方式
         pushModel.alias = string.Join(",", deviceTokens.ToArray());
     }
     else
     {
         //上传文件后返回的file_id
         var response = Upload(pushModel.appkey, deviceTokens, equipmentType);
         if (response.ret.Equals("SUCCESS") && !string.IsNullOrEmpty(response.data.file_id))
         {
             pushModel.file_id = response.data.file_id;
         }
     }
 }