C#微信公眾號開發 -- (六)自定義菜單事件之CLICK


微信公眾號中當用戶手動點擊了按鈕,微信公眾號會被動的向用戶發送文字消息或者圖文消息。

通過C#微信公眾號開發 -- (五)自定義菜單創建 我們知道了如何將CLICK類型的按鈕添加到自己的微信公眾平台上面

通過C#微信公眾號開發 -- (三)用戶關注之后自動回復 我們知道了通過用戶觸發事件來被動向用戶發送消息

那么自定義菜單的CLICK事件點擊觸發也就是這兩者的完美結合,以點擊今日歌曲為例

首先我們在WXOpera() 方法下添加一個CLICK事件的判斷:

 else if (!string.IsNullOrEmpty(wx.EventName) && wx.EventName.Trim() == "CLICK")
            {
                string key = wx.EventKey;
                switch (key)
                {
                    case "V1001_TODAY_MUSIC": 
                        res = TodayMusic(wx);
                        HttpContext.Current.Response.Write(res);
                        HttpContext.Current.Response.End();
                        break;
                }
            }

這里的V1001_TODAY_MUSIC 其實就是自定義菜單中CLICK按鈕的key

添加TodayMusic() 方法:

/// <summary>
        /// 加載今日歌曲
        /// </summary>
        /// <param name="wx"></param>
        /// <returns></returns>
        private string TodayMusic(wxmessage wx)
        {
            //獲取推送的今日歌曲
            return sendPicTextMessage(wx, "今日歌曲推薦", "今天點擊率最高,播放次數最高的歌曲!",
                "http://musicdata.baidu.com/data2/pic/a5c79cf978eb5302edca415cabf744f1/260983581/260983581.jpg",
                "http://www.cnblogs.com/HappyAnt/"); //?openid= + wx.FromUserName

        }

這里要說明的是sendPicTextMessage其實是將微信提供的發送消息代碼的封裝,其中五個參數分別表示:wxmessage對象,圖文消息的標題,圖文消息的內容,圖文消息的圖片,點擊圖文消息將要跳轉的頁面(這里依我的主頁為例)。特別需要注意的是第五個參數,如果想要在跳轉到的頁面上獲取微信用戶的openid信息,只需要在鏈接地址后面加上:?openid= + wx.FromUserName 就可以了。
sendPicTextMessage 封裝微信提供的發送圖文消息代碼:

 /// <summary>
        /// 發送圖文消息
        /// </summary>
        /// <param name="_mode">微信發送用戶信息包</param>
        /// <param name="title">標題</param>
        /// <param name="description">內容</param>
        /// <param name="picurl">圖片地址</param>
        /// <param name="url">跳轉地址</param>
        /// <returns></returns>
        private string sendPicTextMessage(wxmessage _mode, string title, string description, string picurl, string url)
        {
            string res = string.Format(Message_PicText,
                _mode.FromUserName, _mode.ToUserName, DateTime.Now, title, description, picurl, url);
            return res;
        }

        /// <summary>
        /// 圖文消息
        /// </summary>
        private static string Message_PicText
        {
            get
            {
                return @"<xml>
                                <ToUserName><![CDATA[{0}]]></ToUserName>
                                <FromUserName><![CDATA[{1}]]></FromUserName>
                                <CreateTime>{2}</CreateTime>
                                <MsgType><![CDATA[news]]></MsgType>
                                <ArticleCount>1</ArticleCount>
                                <Articles>
                                <item>
                                <Title><![CDATA[{3}]]></Title> 
                                <Description><![CDATA[{4}]]></Description>
                                <PicUrl><![CDATA[{5}]]></PicUrl>
                                <Url><![CDATA[{6}]]></Url>
                                </item>
                                </Articles>
                        </xml>";
            }
        }

到這里一個簡單的CLICK事件的應用就完成了,點擊"今日歌曲"看看會有怎樣的效果吧  ~\(≧▽≦)/~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM