微信公众号平台接口开发 菜单管理的实现


Posted in Javascript onAugust 14, 2019

官方菜单功能介绍

微信公众号平台接口开发 菜单管理的实现

微信公众号平台接口开发 菜单管理的实现

请求接口:https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

微信公众号平台接口开发 菜单管理的实现

微信公众号平台接口开发 菜单管理的实现

新增菜单管理类

public class MenuFirstLayerModel
  {
    public string name { get; set; }
    public List<MenuTwoLayerModel> sub_button { get; set; }
  }

  public class MenuTwoLayerModel
  {
    public string type { get; set; }
    public string name { get; set; }
    public string key { get; set; }
    public string url { get; set; }
  }

  public class WXMenu 
  {
    public List<MenuFirstLayerModel> button { get; set; }

    public string Create()
    {
      try
      {
        var requestUri = string.Format(@"https://api.weixin.qq.com/cgi-bin/menu/create?access_token={0}", WeCharBase.AccessToken);
        
        return WeCharBase.Post(requestUri, new StringContent(JsonConvert.SerializeObject(new
        {
          button = button
        })));
      }
      catch (Exception ex)
      {
        return ex.Message;
      }
    }
  }

新增控制器MenuController.cs

public ActionResult ViewMenu()
    {
      return View();
    }

    public ActionResult CreateMenu()
    {
      var wxMenu = new WXMenu()
      {
        button = new List<MenuFirstLayerModel>()
        {
          new MenuFirstLayerModel()
          {
             name="扫码",
             sub_button = new List<MenuTwoLayerModel>()
             {
              new MenuTwoLayerModel()
              {
                type = "scancode_waitmsg",
                name = "扫码带提示", 
                key = "rselfmenu_0_0"
              },
              new MenuTwoLayerModel()
              {
                type = "scancode_push",
                name = "扫码推事件", 
                key = "rselfmenu_0_1"
              }
             },
          },
          new MenuFirstLayerModel()
          {
             name = "发图",
             sub_button = new List<MenuTwoLayerModel>()
             {
              new MenuTwoLayerModel()
              {
                type = "pic_sysphoto",
                name = "系统拍照发图", 
                key = "rselfmenu_1_0"
              },
              new MenuTwoLayerModel()
              {
                type = "pic_photo_or_album",
                name = "拍照或者相册发图", 
                key = "rselfmenu_1_1"
              },
              new MenuTwoLayerModel()
              {
                type = "pic_weixin",
                name = "微信相册发图", 
                key = "rselfmenu_1_2"
              }
             }
          },
          new MenuFirstLayerModel()
          {
            name = "其他",
            sub_button = new List<MenuTwoLayerModel>()
            {
              new MenuTwoLayerModel()
              {
                type = "location_select",
                name = "发送位置", 
                key = "rselfmenu_2_0"
              },
              new MenuTwoLayerModel()
              {
                type = "click",
                name = "今日歌曲", 
                key = "V1001_TODAY_MUSIC"
              },
              new MenuTwoLayerModel()
              {
                type = "view",
                name = "百度", 
                url = "http://www.baidu.com"
              }
            }
          }
        }
      };

      return Content(wxMenu.Create());
    }

新增视图ViewMenu.cshtml

<script type="text/javascript" language="javascript">
  $(document).ready(function () {
    $("#btnCreate").click(function () {
      $.ajax({
        type: "POST",
        url: "/Menu/CreateMenu",
        data: { id: $("#textContent").val() },
        success: function (responseTest) {
          $("#resultMesage").text(responseTest);
        }
      });
    });
  });
</script>

<table>
  <tr>
    <td>
      <div class="title">菜单创建</div>
      <textarea id="textContent" name="textContent" rows="20" cols="100">
        button = new[]
        {
          new
          {
            name="扫码",
            sub_button = new[]
            {
              new
              {
                type = "scancode_waitmsg",
                name = "扫码带提示",
                key = "rselfmenu_0_0"
              },
              new
              {
                type = "scancode_push",
                name = "扫码推事件",
                key = "rselfmenu_0_1"
              }
            }
          },
          new
          {
            name = "发图",
            sub_button = new[]
            {
              new
              {
                type = "pic_sysphoto",
                name = "系统拍照发图",
                key = "rselfmenu_1_0"
              },
              new
              {
                type = "pic_photo_or_album",
                name = "拍照或者相册发图",
                key = "rselfmenu_1_1"
              },
              new
              {
                type = "pic_weixin",
                name = "微信相册发图",
                key = "rselfmenu_1_2"
              }
            }
          },
          new
          {
            name = "其他",
            sub_button = new[]
            {
              new
              {
                type = "location_select",
                name = "发送位置",
                key = "rselfmenu_2_0"
              },
              new
              {
                type = "click",
                name = "今日歌曲",
                key = "V1001_TODAY_MUSIC"
              },
              new
              {
                type = "view",
                name = "百度",
                url = "http://www.baidu.com"
              }
            }
          }
        }

      </textarea>
    </td>
    <td><input class="btncss" id="btnCreate" type="button" value=" 创建 " /></td>
    <td id="resultMesage" class="resultMesage"></td>
  </tr>
</table>

有效代码写完了,看看效果

微信公众号平台接口开发 菜单管理的实现

微信公众号平台接口开发 菜单管理的实现

成功了哦。

Javascript 相关文章推荐
从JavaScript 到 JQuery (1)学习小结
Feb 12 Javascript
jQuery 点击图片跳转上一张或下一张功能的实现代码
Mar 12 Javascript
Jquery实现鼠标移动放大图片功能实例
Mar 25 Javascript
jQuery动态星级评分效果实现方法
Aug 06 Javascript
window.location.hash知识汇总
Nov 09 Javascript
jQuery实现HTML表格单元格的合并功能
Apr 06 Javascript
有关jquery与DOM节点操作方法和属性记录
Apr 15 Javascript
JavaScript实现Base64编码转换
Apr 23 Javascript
jquery对象和DOM对象的相互转换详解
Oct 18 Javascript
JS执行控制之节流模式实例分析
Dec 21 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
Jun 14 Javascript
带你彻底理解JavaScript中的原型对象
Apr 14 Javascript
vue.js中ref和$refs的使用及示例讲解
Aug 14 #Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
Aug 14 #Javascript
vue filter 完美时间日期格式的代码
Aug 14 #Javascript
如何对react hooks进行单元测试的方法
Aug 14 #Javascript
vue 中 命名视图的用法实例详解
Aug 14 #Javascript
详解vue 命名视图
Aug 14 #Javascript
浅谈JS中this在各个场景下的指向
Aug 14 #Javascript
You might like
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
2011/06/28 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
php读取excel文件示例分享(更新修改excel)
2014/02/27 PHP
thinkphp中U方法按路由规则生成url的方法
2018/03/12 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
图片自动缩小的js代码,用以防止图片撑破页面
2007/03/12 Javascript
js 实现打印网页中定义的部分内容的代码
2010/04/01 Javascript
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
动态创建样式表在各浏览器中的差异测试代码
2011/09/13 Javascript
在标题栏显示新消息提示,很多公司项目中用到这个方法
2011/11/04 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
基于Javascript实现弹出页面效果
2016/01/01 Javascript
在JavaScript中使用JSON数据
2016/02/15 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
微信小程序使用echarts获取数据并生成折线图
2019/10/16 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
ubuntu安装sublime3并配置python3环境的方法
2018/03/15 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
Python 带星号(* 或 **)的函数参数详解
2021/02/23 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
国贸专业的职业规划范文
2014/01/23 职场文书
高中生职业规划范文
2014/03/09 职场文书
竞选纪律委员演讲稿
2014/09/13 职场文书
同事欢送会致辞
2015/07/31 职场文书