示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#3
0
        /// <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()}");
            }
        }