微信企业号开发:自定义菜单详解手机开发
2023-06-13 09:20:12 时间
开发微信企业号可以通过程序自定义菜单,只需要调用相关的接口就可以实现。
其实这个菜单也就是微信底部的菜单,目前自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“ ”代替。其实创建菜单也很简单。
但有一点需要说明,如果有子菜单,那么这个菜单就不会向后端发送事件。例如:我定义了三个一级菜单一个click,两个view。
如果没有子菜单,则点击click类型的菜单时,后主动向后端发送上报菜单事件,如果有则不会发送上报菜单事件。
如果没有子菜单,则点击view类型的菜单时,回主动向后端发送点击菜单跳转链接的事件。并且会打开对应的网页,如果有则不会发送点击菜单跳转链接的事件,也不会打开对应的网页。
也就是,如果有子菜单,则这个菜单,就是点击单纯的显示子菜单,不会有其他的动作了。
例如:
核心代码菜单相关:
public enum MenuTypeEnum click = 1, view = 2, scancode_push = 3, scancode_waitmsg = 4, pic_sysphoto = 5, pic_photo_or_album = 6, pic_weixin = 7, location_select = 8 public abstract class SubButton /// summary /// 菜单的响应动作类型,目前有click、view两种类型 scancode_push 扫码推事件scancode_waitmsg 扫码推事件且弹出“消息接收中”提示框 /// /summary public string type { get; protected set; } /// summary /// 菜单标题,不超过16个字节,子菜单不超过40个字节 /// /summary public string name { get; set; } public List SubButton sub_button { get; set; } public virtual bool HasError() if (string.IsNullOrEmpty(this.name)) LogInfo.Error("菜单名称为空"); return true; if (string.IsNullOrEmpty(this.type)) LogInfo.Error("菜单类型为空"); return true; if (sub_button!=null sub_button.Count 0) foreach (SubButton bt in sub_button) if (bt.HasError()) return true; return false; public static SubButton CreateSubButton(MenuTypeEnum type,string name,string key,string url) SubButton subButton = null; string menuTypeText = GetMenuTypeText(type); switch (type) case MenuTypeEnum.view: subButton = new SubViewButton(menuTypeText,name, url); break; case MenuTypeEnum.click: case MenuTypeEnum.scancode_push: case MenuTypeEnum.scancode_waitmsg: case MenuTypeEnum.pic_sysphoto: case MenuTypeEnum.pic_photo_or_album: case MenuTypeEnum.pic_weixin: case MenuTypeEnum.location_select: subButton = new SubClickButton(menuTypeText, name, key); break; default: throw new Exception("type=" + type + ",此类型的SubButton没有实现"); return subButton; public static MenuTypeEnum GetMenuType(string type) MenuTypeEnum text = MenuTypeEnum.click; switch (type) case "click": text = MenuTypeEnum.click; break; case "view": text = MenuTypeEnum.view ; break; case "scancode_push": text =MenuTypeEnum.scancode_push ; break; case "scancode_waitmsg": text = MenuTypeEnum.scancode_waitmsg ; break; case "pic_sysphoto" : text = MenuTypeEnum.pic_sysphoto; break; case "pic_photo_or_album": text = MenuTypeEnum.pic_photo_or_album ; break; case "pic_weixin": text = MenuTypeEnum.pic_weixin ; break; case "location_select": text =MenuTypeEnum.location_select ; break; default: throw new Exception("type=" + type + ",此类型的MenuTypeEnum没有找到"); return text; public static string GetMenuTypeText(MenuTypeEnum type) string text = ""; switch (type) case MenuTypeEnum.click: text = "click"; break; case MenuTypeEnum.view: text = "view"; break; case MenuTypeEnum.scancode_push: text = "scancode_push"; break; case MenuTypeEnum.scancode_waitmsg: text = "scancode_waitmsg"; break; case MenuTypeEnum.pic_sysphoto: text = "pic_sysphoto"; break; case MenuTypeEnum.pic_photo_or_album: text = "pic_photo_or_album"; break; case MenuTypeEnum.pic_weixin: text = "pic_weixin"; break; case MenuTypeEnum.location_select: text = "location_select"; break; default: throw new Exception("type=" + type + ",此类型的MenuTypeEnum没有实现");
5306.html
app程序应用开发手机开发无线开发移动端开发相关文章
- 腾讯乐享社区是什么?如何使用腾讯乐享?如何连接腾讯乐享和企业微信?
- 为什么很多时候,我们会感觉企业越大,效率越低呢?
- Jeewx-api 1.4.9版本发布—第三方APP开发SDK,支持微信、钉钉、企业微信、小程序等
- 企业微信H5开启调试模式
- 草料二维码提交数据自动通知企业微信
- 常见问题:企业微信机器人账号&消息如何对应
- Rust玩具-企业微信机器人通用服务
- 司巧蕾:培养数字人才,助力企业数字化业务价值实现 | 极客时间企业版
- 明确了!工贸企业重大事故隐患判定标准
- 微信企业号开发:企业支付成功后关闭交易页面问题详解手机开发
- 微信企业号开发:企业支付openid的获取 appid and openid not match详解手机开发
- 微信企业号开发:企业支付基础详解手机开发
- 微信企业号开发:微信考勤百度地图定位二详解手机开发
- 微信企业号开发:获取AccessToken详解手机开发
- 微信企业号开发:启用回调模式详解手机开发
- 海淀检察院发公告对微信“敲警钟” 平台企业或迎未保“大考”
- SQL Server容器化:重新定义企业服务水平(sqlserver容器)
- Oracle企业资质助力企业发展(oracle企业资质)
- 教培机构私域流量运营神器,腾讯出品,打通企业微信,关键是便宜
- 透视海尔智家:做时代的企业,创时代的品牌