公众号自定义菜单开发 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 公众号相关 >

公众号自定义菜单开发

发表时间:2026-9-9

发布人:葵宇科技

浏览次数:1

 

自定义菜单开发?

本章将介绍微信公众号自定义菜单的创建、管理和高级应用,帮助您为用户提供更便捷的操作体验。

自定义菜单简介?

自定义菜单是微信公众号的重要功能,它位于公众号聊天窗口的底部,用户可以通过点击菜单快速访问公众号的核心功能。合理设计的自定义菜单可以大幅提升用户体验和公众号的使用率。

菜单类型?

微信公众号支持以下几种菜单类型:

  1. 点击菜单(click):用户点击后,微信服务器会通过事件推送消息给开发者
  2. 跳转网页菜单(view):用户点击后,会跳转到指定的网页URL
  3. 扫码菜单(scancode_push/scancode_waitmsg):用户点击后,微信客户端将调起扫一扫工具
  4. 系统拍照菜单(pic_sysphoto):用户点击后,微信客户端将调起系统相机
  5. 相册选择菜单(pic_photo_or_album):用户点击后,微信客户端将调起系统相机或相册
  6. 微信相册菜单(pic_weixin):用户点击后,微信客户端将调起微信相册
  7. 地理位置菜单(location_select):用户点击后,微信客户端将调起地理位置选择工具
  8. 小程序菜单(miniprogram):用户点击后,将打开指定的小程序(仅服务号可用)

菜单限制?

自定义菜单有以下限制:

  • 最多3个一级菜单
  • 每个一级菜单下最多5个二级菜单
  • 一级菜单最多4个汉字,二级菜单最多7个汉字
  • 菜单创建后,24小时内生效
  • 未认证的订阅号只能使用click和view类型的菜单
  • 认证后的服务号可以使用全部类型的菜单

创建自定义菜单?

通过微信公众平台创建?

最简单的方式是通过微信公众平台的图形界面创建:

  1. 登录微信公众平台
  2. 进入"自定义菜单"
  3. 点击"+"添加菜单
  4. 设置菜单名称和响应动作
  5. 点击"保存并发布"

通过API创建?

对于需要动态管理菜单的场景,可以使用API接口创建自定义菜单。

创建菜单(PHP示例)?

php
<?php function createMenu($accessToken, $menuData) {     $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token={$accessToken}";          $ch = curl_init();     curl_setopt($ch, CURLOPT_URL, $url);     curl_setopt($ch, CURLOPT_POST, 1);     curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($menuData, JSON_UNESCAPED_UNICODE));     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);     curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));          $result = curl_exec($ch);     curl_close($ch);          return json_decode($result, true); }  // 使用示例 $accessToken = 'your_access_token';  $menuData = array(     'button' => array(         array(             'name' => '公司介绍',             'sub_button' => array(                 array(                     'type' => 'view',                     'name' => '关于我们',                     'url' => 'https://www.example.com/about'                 ),                 array(                     'type' => 'view',                     'name' => '联系我们',                     'url' => 'https://www.example.com/contact'                 )             )         ),         array(             'name' => '产品服务',             'sub_button' => array(                 array(                     'type' => 'view',                     'name' => '产品介绍',                     'url' => 'https://www.example.com/products'                 ),                 array(                     'type' => 'click',                     'name' => '最新优惠',                     'key' => 'MENU_PROMOTION'                 )             )         ),         array(             'type' => 'click',             'name' => '每日签到',             'key' => 'MENU_DAILY_CHECKIN'         )     ) );  $result = createMenu($accessToken, $menuData); print_r($result); // 返回结果示例: // Array ( //     [errcode] => 0 //     [errmsg] => ok // )

创建菜单(Node.js示例)?

javascript
const axios = require('axios');  async function createMenu(accessToken, menuData) {     const url = `https://api.weixin.qq.com/cgi-bin/menu/create?access_token=${accessToken}`;          try {         const response = await axios.post(url, menuData);         return response.data;     } catch (error) {         console.error('创建菜单出错:', error);         return { errcode: -1, errmsg: error.message };     } }  // 使用示例 const accessToken = 'your_access_token';  const menuData = {     button: [         {             name: '公司介绍',             sub_button: [                 {                     type: 'view',                     name: '关于我们',                     url: 'https://www.example.com/about'                 },                 {                     type: 'view',                     name: '联系我们',                     url: 'https://www.example.com/contact'                 }             ]         },         {             name: '产品服务',             sub_button: [                 {                     type: 'view',                     name: '产品介绍',                     url: 'https://www.example.com/products'                 },                 {                     type: 'click',                     name: '最新优惠',                     key: 'MENU_PROMOTION'                 }             ]         },         {             type: 'click',             name: '每日签到',             key: 'MENU_DAILY_CHECKIN'         }     ]