🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 菜单接口类 MenuApi **目录 (Table of Contents)** [TOC] ## 类基本信息 **类简要描述:** - 微信菜单接口相关操作的类,用于创建微信菜单,删除微信菜单,获取微信菜单等 **类名字空间:** - endor/wechat/menu/ **类成员变量说明:** |成员变量|类型|访问修饰|说明 |:---- |:---|:----- |----- | |$_menuMaps| array | protected | 菜单对象数组 | **类继承关系:** MenuApi -> WechatCommon ## 类成员函数/方法 ### __construct($wxconfigure) + 参数列表: |参数名|类型|必填项|说明 |:---- |:---|:----- |----- | |$wxconfigure| Object (WechatConfig)| 是 | 微信配置参数对象 | + 返回值: `无` + 函数说明: `构造函数` ### addMenuItem(&$menuItem, $parent=null) + 参数列表: |参数名|类型|必填项|说明 |:---- |:---|:----- |----- | |$menuItem| string | 是 | 菜单对象 | |$parent| object (Menu) | 否 | 父菜单 | + 返回值: `void` + 函数说明: `添加菜单项,添加在$_menuMaps对象数组中` + 函数示例 ```PHP $wxConfigure = new WechatConfig(); $wxConfigure->setParameter("appid",YoursAppId ); $wxConfigure->setParameter("appsecret",YoursSecret); $wxConfigure->setParameter("access_token",ACCESS_TOKEN); $menuApi = new MenuApi($wxConfigure); $button = new ClickMenu("点击按钮","LVB_0001"); $menuApi->addMenuItem($button); ``` ### get() + 参数列表: `无` + 返回值: `boolean 获取成功返回true ` + 错误返回 `如果函数内有错误或异常,抛出 WechatException异常 ` + 函数说明: `返回当前微信公众号的菜单对象数组,该方法要调用后,要刷新本地的菜单结构,覆盖$_menuMaps数组` + 函数示例 ```PHP $wxConfigure = new WechatConfig(); $wxConfigure->setParameter("appid",YoursAppId ); $wxConfigure->setParameter("appsecret",YoursSecret); $wxConfigure->setParameter("access_token",ACCESS_TOKEN); $menuApi = new MenuApi($wxConfigure); try { // 需要先从微信服务器上获取菜单 $ret = $menuApi->get(); if($ret) $menuArr = $menuApi->getMenu(); } catch(WechatException $e) { echo $e->errorMessage(); } ``` ### getMenu() + 参数列表: `无` + 返回值: `array` + 函数说明: `获取本地的微信菜单对象数组($_menuMaps)` + 函数示例: ```PHP $wxConfigure = new WechatConfig(); $wxConfigure->setParameter("appid",YoursAppId ); $wxConfigure->setParameter("appsecret",YoursSecret); $wxConfigure->setParameter("access_token",ACCESS_TOKEN); $menuApi = new MenuApi($wxConfigure); try { $ret = $menuApi ->get(); if($ret) { $menuArr = $menuApi->getMenu(); // 遍历菜单数组 foreach ($menuArr as $v) { echo $v->getName() . " (" .$v->getType() . " )" ; echo "\r\n"; $children = $v->getChildren(); foreach($children as $n) { echo "\t\t".$n->getName() . " (" .$n->getType() . " )" ; echo "\r\n"; } } } } catch(WechatException $e) { echo $e->errorMessage(); } ``` ### delete() + 参数列表: `无` + 返回值: `boolean 删除成功返回true ` + 错误返回 `如果函数内有错误或异常,抛出 WechatException异常 ` + 函数说明: `删除微信公众号上的所有菜单` + 函数示例: ```PHP $wxConfigure = new WechatConfig(); $wxConfigure->setParameter("appid",YoursAppId ); $wxConfigure->setParameter("appsecret",YoursSecret); $wxConfigure->setParameter("access_token",ACCESS_TOKEN); $menuApi = new MenuApi($wxConfigure); try { // 删除微信公众号上的所有菜单 $menuApi->delete(); } catch(WechatException $e) { echo $e->errorMessage(); } ``` ### clearMenu() + 参数列表: `无` + 返回值: `void` + 函数说明: `清空本地$_menuMaps中的所有菜单,不调用create()方法,不会影响微信公众号上的菜单`