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事件的应用就完成了,点击"今日歌曲"看看会有怎样的效果吧 ~\(≧▽≦)/~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)