/// <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); }
/// <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); }
/// <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; } } }
/// <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")); }
/// <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")); }
/// <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; } } }