/// <summary> /// 给不同的用户推送同一条消息 /// </summary> /// <param name="message"></param> /// <param name="tokens"></param> /// <returns></returns> public bool Send(PushPluginMessage message, IEnumerable <TokenModel> tokens) { //将ios推送的消息值添加到ios推送列表中 var listMessage = new List <iOSPushMessage>(); var ret = false; foreach (var token in tokens) { // 推送消息内容 listMessage.Add(new iOSPushMessage { Token = token.Token, Message = "{\"id\":0,\"type\":" + message.ClientAction + ",\"url\":\"" + message.ClientActionUrl + "\",\"title\":\"" + message.Title + "\"}", Body = message.Message, BatchNo = token.BatchNo, }); } //if(_pushService == null) //{ // _pushService = new PushSharpIosService(_appleCertPwd, _isTest); // _pushService.PushSucceeded += PushServce_PushSucceeded; // _pushService.PushFailed += PushServce_PushFailed; //} // 发起ios推送请求(PushSharp方式) _pushService.SendMessage(listMessage); ret = true; return(ret); }
/// <summary> /// 给不同的用户推送同一条消息 /// </summary> /// <param name="message"></param> /// <param name="tokens"></param> /// <returns></returns> public bool Send(PushPluginMessage message, IEnumerable <TokenModel> tokens) { var thread = new Thread(() => SendUniformMessage(message, tokens)); thread.Start(); return(true); }
/// <summary> /// 给不同的用户推送同一条消息 /// </summary> /// <param name="message"></param> /// <param name="tokens"></param> private void SendUniformMessage(PushPluginMessage message, IEnumerable <TokenModel> tokens) { try { _log.Info($"MiPush插件开始执行一对多推送,数量: {tokens.Count()}"); var pushMessage = new PushMessageModel() { title = message.Title, content = message.Message, url = message.ClientActionUrl, action = message.ClientAction }; var sendData = new PushSendRegidModel() { registration_id = string.Join(",", tokens.Select(p => p.Token)), payload = JsonConvert.SerializeObject(pushMessage), restricted_package_name = RestrictedPackageName, pass_through = message.PassThrough, title = message.Title, description = message.Message, notify_type = -1 }; var sentResult = Send(sendData); if (sentResult.result.Equals("ok")) { foreach (var tokenModel in tokens) { PushSucess(tokenModel.BatchNo); } } else { foreach (var tokenModel in tokens) { PushFail(tokenModel.BatchNo); } } _log.Info($"MiPush插件一对多推送发送完毕,数量: {tokens.Count()}"); } catch (Exception ex) { _log.Error($"Android插件消息推送异常{ex},数量:{tokens.Count()}"); } }