示例#1
0
        private async Task <Push> InternalSendPushAsync(BasePush parameters, PushTarget target, string identifier)
        {
            switch (target)
            {
            case PushTarget.Device:
                parameters.DeviceIndentifier = identifier;
                break;

            case PushTarget.Email:
                parameters.Email = identifier;
                break;

            case PushTarget.Channel:
                parameters.ChannelTag = identifier;
                break;

            case PushTarget.Client:
                parameters.ClientIdentifier = identifier;
                break;
            }

            var pushModel = await RequestClient.SendAsync <PushModel>("/v2/pushes", HttpMethod.Post, parameters)
                            .ConfigureAwait(false);

            return(new Push(pushModel, RequestClient));
        }
示例#2
0
 public PushRequestParameter(T _pushType, PushTarget _target, string _targetValue)
 {
     PushTarget      = _target;
     PushTargetValue = _targetValue;
     PushType        = _pushType;
 }
示例#3
0
        /// <summary>
        /// 向用户推送一条消息
        /// </summary>
        /// <param name="appid">平台表示ID</param>
        /// <param name="user_id">用户ID</param>
        /// <param name="title">标题</param>
        /// <param name="content">内容</param>
        public static void SendPush(string appid, string target, string title, string content, PushTarget pushTarget = PushTarget.User)
        {
            Audience audience = null;

            if (pushTarget == PushTarget.User)
            {
                audience = Audience.s_alias(new string[] { target.ToString() });
            }
            else
            {
                audience = Audience.s_tag(new string[] { target.ToString() });
            }

            #region 构造安卓消息模板
            AndroidNotification androidNotification = new AndroidNotification();
            androidNotification.setTitle(title);
            #endregion

            #region 构造IOS消息模板
            IosNotification iosNotification = new IosNotification();
            iosNotification.setBadge(1);
            #endregion

            PushPayload pushPayload = new PushPayload()
            {
                platform = GetPlaform(0),
                audience = audience
            };

            var notification = new Notification().setAlert(content);
            notification.AndroidNotification = androidNotification;
            notification.IosNotification     = iosNotification;
            pushPayload.notification         = notification.Check();

            //pushPayload.message = Message.content(content);
            SendPush(appid, pushPayload);
        }
示例#4
0
 internal Task <Push> PushFileAsync(FilePushParameters parameters, PushTarget target, string identifier)
 {
     parameters.Type = "file";
     return(InternalSendPushAsync(parameters, target, identifier));
 }
示例#5
0
 internal Task <Push> PushLinkAsync(LinkPushParameters parameters, PushTarget target, string identifier)
 {
     parameters.Type = "link";
     return(InternalSendPushAsync(parameters, target, identifier));
 }