微信公衆號中當用戶手動點擊了按鈕,微信公衆號會被動的向用戶發送文字消息或者圖文消息。html
經過C#微信公衆號開發 -- (五)自定義菜單建立 咱們知道了如何將CLICK類型的按鈕添加到本身的微信公衆平臺上面微信
經過C#微信公衆號開發 -- (三)用戶關注以後自動回覆 咱們知道了經過用戶觸發事件來被動向用戶發送消息app
那麼自定義菜單的CLICK事件點擊觸發也就是這二者的完美結合,以點擊今日歌曲爲例微信公衆平臺
首先咱們在WXOpera() 方法下添加一個CLICK事件的判斷:curl
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按鈕的keypost
添加TodayMusic() 方法:url
/// <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 封裝微信提供的發送圖文消息代碼:spa
/// <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事件的應用就完成了,點擊"今日歌曲"看看會有怎樣的效果吧 ~\(≧▽≦)/~code