大家可能经常看到一些微信公众号具有功能强大的自定义菜单,点击之后可以访问很多有用的功能。

这篇教程就教大家如何动手做一做。

这个教程最后实现的效果是:创建一个一级菜单“UI5", 点击之后弹出两个二级菜单,如下图蓝色区域所示。每个二级菜单都能完成一些任务。

那么用什么API创建这些自定义菜单呢?微信公众号平台技术文档中,点击"自定义菜单":

文档里给了创建自定义菜单需要维护参数的HTTPpost报文的格式:

回到我的例子,我用postman发送这个HTTP post请求:

这是我HTTP post的报文内容:

{"button":[{"name":"UI5","sub_button":[{"type": "view","name": "Jerry List","url": "http://wechatjerry.herokuapp.com/ui5"},{"type": "click","name": "Other UI5 application","key": "dataQuery"}]}]}

上述json格式的报文定义了一个一级菜单,标签文本为UI5。两个二级菜单(sub_button),类型分别为view和click。

view类型即绑定一个HTML页面到该二级菜单,点击之后跳转到这个页面去。我的例子绑定的html页面是http://wechatjerry.herokuapp.com/ui5。 类型为click的菜单很好理解,点击后,微信平台会发送一个事件给您公众号的微信服务器上。您需要在您的微信服务器里对这个时间做处理。事件类型通过参数key指定,我上述例子的类型是dataQuery,这个参数可以随意指定。

响应类型为click的微信自定义二级菜单的伪代码如下:

app.route('/').post(function(req,res){req.on("end",function(){var msgType = formattedValue(getXMLNodeValue('MsgType', content));if( msgType === "event"){var eventKey = formattedValue(getXMLNodeValue('EventKey', content));if( eventKey === "dataQuery"){// 响应微信自定义二级菜单的点击}}});

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

微信程序开发系列教程(四)使用微信API创建公众号自定义菜单相关推荐

  1. 微信程序开发系列教程(二)微信订阅号+人工智能问答服务

    我的前一篇文章**微信程序开发系列教程(一)**开发环境搭建 已经介绍了微信服务器的开发环境搭建.本文作为开发系列的第二篇文章,介绍如何给您的微信订阅号开发一个最简单的问答服务,非常好玩. 这个系列的 ...

  2. 微信小程序开发系列教程三:微信小程序的调试方法

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 这个教程的前两篇文章,介绍了如何用下图所示的微信开发者工具自动生成一个Hel ...

  3. 微信程序开发系列教程(一)开发环境搭建

    1. 您得从微信官方平台注册一个微信订阅号: https://mp.weixin.qq.com 2. 这个教程使用nodejs开发微信订阅号对应的消息服务器,因此需要具备基本的nodejs开发技能. ...

  4. 微信小程序生态13-微信公众号自定义菜单、个性化菜单配置

    文章导航 微信小程序生态1-初识小程序 微信小程序生态2-创建一个微信小程序 微信小程序生态3-微信小程序登录流程设计 微信小程序生态4-扫普通二维码进入小程序.打开短链接进入小程序 微信小程序生态5 ...

  5. 微信公众号自定义菜单设置教程

    微信公众号菜单等功能如何开通 自定义菜单最大的优点是减少了用户的认知门槛,可以将公众账号里的重点信息入口直观的暴露给用户.当用户进入到公众账号时,可以一目了然的了解相关的服务,只需要点击,不需要再通过 ...

  6. springboot微信公众号自定义菜单创建及响应

    微信公众号自定义菜单创建及响应 前言 本篇博客是为了速度开发微信公众号而进行讲解,对于深入的原理性讲解推荐去观看微信公众平台的官方文档. 微信公众号分为订阅号,服务号,小程序,本篇主要是介绍的订阅号开 ...

  7. java 创建自定义菜单_Java实现微信公众号自定义菜单的创建方法示例

    本文实例讲述了Java实现微信公众号自定义菜单的创建方法.分享给大家供大家参考,具体如下: 开发公众号的时候可能需要给一些自定义菜单添加事件,比如点击某菜单然后服务端给用户推送信息. 我们也可以使用微 ...

  8. 微信公众号自定义菜单添加emoji表情图标

    微信公众号自定义菜单添加emoji表情图标 第一步:打开微信公众平台接口调试工具,点击前往接口调试工具: 第二步:把这段代码   {"button":[{"sub_but ...

  9. php 微信公众号自定义菜单

    使用php配置微信公众号自定义菜单 注意: 编写发送消息之前需要在微信公众平台后台左边菜单找到基本配置 然后开启服务器配置 一级菜单数组,个数应为1~3个, 二级菜单数组,个数应为1~5个 如果有疑问 ...

  10. 微信公众号自定义菜单怎么添加多篇文章?

    本文主要是从个人的经验出发,分享一个主题: 微信公众号自定义菜单如何添加多篇文章(主要通过推文分类.精选 来实现) 不仅仅从微信页面模板.专辑的角度,同时分享一些微信公众号运营人员遇到的共性问题,例如 ...

最新文章

  1. python3 AES 加解密
  2. Python中使用推导式创建序列
  3. 五大IT巨头 成立专利联盟
  4. Java数据结构与算法(20) - ch08树
  5. mysql子查询的方式_分布式系统中一种迭代处理MYSQL子查询的方法
  6. [转载]Sybase数据库SQL语句REPLACE的对应函数
  7. 创建弹出窗口的图片展示
  8. IDEA中导入支付宝电脑网站支付测试Demo遇到的错误
  9. 微信小程序入门的一些建议,替大家踩坑
  10. Ubuntu 16.04-17.04开机自动root用户登录(测试可用)
  11. 吉林农业科技学院计算机大师,吉林农业科技学院
  12. DEDECMS 关键字不能小于2个字节!
  13. UI:使用 pod 引入 AFNetworking
  14. adb.exe可能被其他程序关闭_如何开启或关闭MacBook
  15. centos7播放MP4视频需要MPEG-4 AAC解码器,和H.264(High profile) 解码器
  16. blender做MMD心得(三)
  17. 这样来理解委托,代理,协议三者的区别
  18. 【Linux】动态防火墙,实现对攻击IP的动态拦截,一定程度上解决云服务器主机经常被境外IP尝试登录,屏蔽指定地区、国家的IP连接
  19. devise rails
  20. Dwz点击左侧菜单动态添加Tab标签图标

热门文章

  1. 代码随想录第十一天 LeetCode 20、1047、150(栈)
  2. 首席新媒体运营商学院创始人黎想:给新媒体运营的7点建议
  3. 2018年新媒体趋势解读:大航海时代结束,圈地运营开始
  4. Photoshop精讲精练笔记
  5. 混乱的代码是技术债吗
  6. MyEclipse 2014 破解失败,cracker.jar文件打开闪退
  7. 校招总结--建议全文背诵
  8. 基于C语言的AES加密算法实现
  9. Python3 网络爬虫. 4
  10. 最新最全论文合集——基于背景知识的对话系统