Пример #1
0
 private void SendNotification(JObject payload, string deviceToken, BarkMessage barkMessage)
 {
     if (apnsBroker == null)
     {
         return;
     }
     if (deviceToken.Length != DeviceTokenLength)
     {
         return;
     }
     try
     {
         // 队列发送一个通知
         apnsBroker.QueueNotification(new ApnsNotification
         {
             DeviceToken = deviceToken,//这里的deviceToken是ios端获取后传递到数据库统一记录管理的,有效的Token才能保证推送成功
             Payload     = payload
         });
         OnSend?.Invoke(this, new SendEventArgs(payload, deviceToken, barkMessage));
     }
     catch (Exception) { }
 }
Пример #2
0
        /// <summary>
        /// 发送信息
        /// </summary>
        /// <param name="barkMessage">信息</param>
        /// <param name="MY_DEVICE_TOKENS">device token 数组</param>
        /// <returns></returns>
        public bool SendMesssage(BarkMessage barkMessage, string[] MY_DEVICE_TOKENS = null)
        {
            if (apnsBroker == null)
            {
                return(false);
            }
            if (barkMessage == null)
            {
                return(false);
            }
            if (MY_DEVICE_TOKENS == null)
            {
                MY_DEVICE_TOKENS = DeviceData.DeviceTokens();
            }
            if (MY_DEVICE_TOKENS == null)
            {
                return(false);
            }
            if (MY_DEVICE_TOKENS.Length <= 0)
            {
                return(false);
            }
            Dictionary <string, object> payload = new Dictionary <string, object>();
            Dictionary <string, object> aps     = new Dictionary <string, object>();
            Dictionary <string, object> alert   = new Dictionary <string, object>();

            if (!string.IsNullOrEmpty(barkMessage.body))
            {
                alert.Add("body", barkMessage.body);
            }
            if (!string.IsNullOrEmpty(barkMessage.title))
            {
                alert.Add("title", barkMessage.title);
            }
            aps.Add("category", "myNotificationCategory");
            aps.Add("sound", "1");
            aps.Add("badge", "0");
            aps.Add("mutable-content", "1");
            aps.Add("alert", alert);
            //1 自动保存 0 不保存
            payload.Add("isarchive", barkMessage.isArchive);
            //url地址
            if (!string.IsNullOrEmpty(barkMessage.url))
            {
                payload.Add("url", barkMessage.url);
            }
            //推送内容会自动复制到粘贴板
            payload.Add("automaticallycopy", barkMessage.autoMaticallyCopy);
            //复制字段
            if (!string.IsNullOrEmpty(barkMessage.copy))
            {
                payload.Add("copy", barkMessage.copy);
            }
            payload.Add("aps", aps);
            var jsonObject = JObject.FromObject(payload);

            foreach (var deviceToken in MY_DEVICE_TOKENS)
            {
                SendNotification(jsonObject, deviceToken, barkMessage);
            }
            return(true);
        }
Пример #3
0
 public SendEventArgs(JObject payload, string deviceToken, BarkMessage barkMessage)
 {
     this.payload     = payload;
     this.deviceToken = deviceToken;
     this.barkMessage = barkMessage;
 }