微信开发时候如果按照接口调试工具进行自定义菜单的设置非常麻烦而且容易出错,尤其是使用测试号进行测试的时候,由于测试后没有自定义菜单的设置功能,我们可以自己封装一个自定义菜单的方法对其进行自定义菜单的设置。

亲测可用的代码

主方法
import entity.menu.Button;
import entity.menu.ClickButton;
import entity.menu.PhotoOrAlbumButton;
import entity.menu.SubButton;
import entity.menu.ViewButton;
import service.LlService;
/***    创建自定义菜单* @author LILUO**/
public class CreateMenu {public static void main(String[] args) {//创建button对象Button btn = new Button();btn.getButton().add(new ClickButton("一级菜单", "1"));//第一个一级菜单btn.getButton().add(new ViewButton("手机商城", "跳转地址"));//第二个一级菜单//含二级菜单SubButton sub = new SubButton("一级菜单");//二级菜单sub.getSub_button().add(new PhotoOrAlbumButton("图片上传", "31"));sub.getSub_button().add(new ClickButton("点击", "32"));sub.getSub_button().add(new ViewButton("跳转", "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxaa741fe1928b80fb&redirect_uri=回调地址&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"));//加入到btn中btn.getButton().add(sub);//将对象转成json对象net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(btn);//url//String url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token="+LlService.getAccessToken();String url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=20_pki8CuAWXbNOpq8qNKVJOAFUP3SPWertvTGDycHSSZ9REpUY4ZLNrzK1QtZ53yB0MAi8GguI2Y5xziuXymnA4b1jx4nTsSeEXEhBLIGD731UgmybONoG0PDA-70CM13ie8w6NcJapKsqOllOLDNgAEAQIS";//19_XHnjT1lkOO5841x2RRo7vFUORtfVINKSa8Z8pzVXf6jYkBuuhAyOuQUDtqCNxU_Oc7pbXjgccZq-uc_zUQwNPupDdlAhZIC09zcBWe6fEEurFV5jS_3SBvJg1eQLOsB6IFm7gIjlJEYIT4DkELKiAEARYX//执行修改String result = getAndPost.post(url, jsonObject.toString());System.out.println(result);
}

}

实体类

 package entity.menu;import java.util.ArrayList;import java.util.List;/***   自定义菜单,用来存放所有的自定义菜单* @author LILUO**/public class Button {/***   定义一个abstractButton用来存放多有的菜单内容*/private List<AbstractButton> Button = new ArrayList<AbstractButton>();public List<AbstractButton> getButton() {return Button;}public void setButton(List<AbstractButton> Button) {this.Button = Button;}}package entity.menu;public    abstract class AbstractButton {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}//通过构造函数创建对象的时候执行赋值public AbstractButton(String name) {super();this.name = name;}}package entity.menu;public class ClickButton extends AbstractButton {private String type = "click";private String key;public String getType() {return type;}public void setType(String type) {this.type = type;}public String getKey() {return key;}public void setKey(String key) {this.key = key;}public ClickButton(String name, String key) {super(name);this.key = key;}}
package entity.menu;import java.util.ArrayList;
import java.util.List;public class PhotoOrAlbumButton extends AbstractButton {private String type = "pic_photo_or_album";private String key;private List<AbstractButton> sub_button = new ArrayList<AbstractButton>();public String getType() {return type;}public void setType(String type) {this.type = type;}public String getKey() {return key;}public void setKey(String key) {this.key = key;}public List<AbstractButton> getSub_button() {return sub_button;}public void setSub_button(List<AbstractButton> sub_button) {this.sub_button = sub_button;}public PhotoOrAlbumButton(String name, String key) {super(name);this.key = key;}}
package entity.menu;import java.util.ArrayList;
import java.util.List;public class SubButton extends AbstractButton {private List<AbstractButton> sub_button = new ArrayList<AbstractButton>();public List<AbstractButton> getSub_button() {return sub_button;}public void setSub_button(List<AbstractButton> sub_button) {this.sub_button = sub_button;}public SubButton(String name) {super(name);}}
package entity.menu;public class ViewButton extends AbstractButton {private String type = "view";private String url ;public String getType() {return type;}public void setType(String type) {this.type = type;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public ViewButton(String name, String url) {super(name);this.url = url;}}

微信公众号自定义菜单设置管理相关推荐

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

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

  2. 微信公众号自定义菜单如何设置?

    随着微信公众号注册条件的放宽,微信公众号的使用范围更加广泛,普及程度也有所提高.现在大大小小的商家几乎都有自己的微信公众号. 无论什么产品,都离不开一个固有的规律,那就是是用的人多了,问题也就显现出来 ...

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

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

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

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

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

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

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

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

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

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

  8. 微信公众号自定义菜单如何添加特殊符号?

    前言 有些公众号底部的菜单栏,会出现一些表情(小图标),如图所示: 众所周知,微信不允许这种 特殊符号 ,那么如何使用这些特殊符号呢? 第一种办法 这种办法最简单,利用一个网站即可:传送门! 一.打开 ...

  9. 个人设置微信公众号自定义菜单的初级经验

    前言:这是一个初级经验贴,因为一位社区网友不太会弄自定义菜单,整理一篇文章给他说明一下,顺便备份. 以我自己的个人公众号为例(没啥内容,纯开发测试用,是个人订阅号) 1,自定义菜单的管理位置 首先登录 ...

最新文章

  1. Linux终端运行fasterrcnn,对yolo与fasterrcnn anchors的理解
  2. Java项目:清新论坛系统(java+SSM+mysql+maven+tomcat)
  3. 解决HttpServletResponse输出中文乱码问题
  4. 面向对象三大特性,六个原则
  5. 趣挨踢 | 关于遗留代码的那些事儿
  6. 将流数据输出到Mysql中
  7. Brew安装MacVim
  8. 手机App都在偷听我说话?窃听疑云全球密布,科技公司连连喊冤
  9. make though multi core
  10. 计算机主机有异响,电脑主机有异响怎么办 电脑主板有异响解决方法【详解】...
  11. 2022年黑客书籍推荐
  12. matplotlib折线图(标记点、标记点大小、标记点边颜色、标记点边宽)
  13. 阿里云认证是什么?报考要什么条件?
  14. MySQL之SELECT函数
  15. 多项式插值中的一些定理证明
  16. android 动画引擎,用 Android 实现一条小金鱼游动动画(超棒)
  17. BUUCTF解题十一道(04)
  18. PTA 1100 校庆(Python3)
  19. Struts2 注解开发实现简单的增删改查,超详细教程
  20. 拉新、促活、留存、付费转化

热门文章

  1. 网际控制报文协议---ICMP
  2. 文字溢出时,实现在末尾显示三个点省略效果
  3. centos7 下 的lamp 的安装原创详细教程
  4. eclipse常用窗口和功能总结
  5. 安装pypcap = 安装flex:the fast lexical analyser + 安装libpcap-1.7.4
  6. android资源收藏贴[持续更新]
  7. MSDN Visual系列:利用关联来过滤MOSS中的BDC数据
  8. 第一章:React入门
  9. 如何获取cookie值
  10. JS-概述-基本语法-变量-数据类型