微信公众号开发整理(五)--自定义菜单
1.自定义菜单功能:
数据结构类型参照微信公众平台数据格式,这里不做分析:
创建相应的实体类:
public class Button {
//菜单类型
private String type;
//菜单名称
private String name;
//二级菜单
private Button[] sub_button;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Button[] getSub_button() {
return sub_button;
}
public void setSub_button(Button[] sub_button) {
this.sub_button = sub_button;
}
}
再创建ClickButton类
public class ClickButton extends Button{
//Click类型菜单key
private String key;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
}
再创建ViewButton类
public class ViewButton extends Button{
//view类型菜单url
private String url;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
再创建我们的菜单类:
public class Menu {
//一级菜单
private Button[] button;
public Button[] getButton() {
return button;
}
public void setButton(Button[] button) {
this.button = button;
}
}
2.创建新增菜单的方法
public static Menu initMenu(){
Menu menu = new Menu();
ClickButton button11 = new ClickButton();
button11.setName("click菜单");
button11.setType("click");
button11.setKey("11");
ViewButton button21 = new ViewButton();
button21.setName("view菜单");
button21.setType("view");
button21.setUrl("http://www.baidu.com");//我这里测试使用百度网站
ClickButton button31 = new ClickButton();
button31.setName("扫码事件");
button31.setType("scancode_push");
button31.setKey("31");
ClickButton button32 = new ClickButton();
button32.setName("地理位置");
button32.setType("location_select");
button32.setKey("32");
Button button = new Button();
button.setName("菜单");
button.setSub_button(new Button[]{button31,button32});
menu.setButton(new Button[]{button11,button21,button});
return menu;
}
新增创建菜单访问请求路径常量
//创建菜单
public static int createMenu(String token,String menu) throws ParseException, IOException{
int result = 0;
String url = CREATE_MENU_URL.replace("ACCESS_TOKEN", token);
JSONObject jsonObject = doPostStr(url, menu);
if(jsonObject != null){
//正常返回0
result = jsonObject.getInt("errcode");
}
return result;
}
测试:
public class WeixinTest {
public static void main(String[] args){
try {
AccessToken token = WenXinUntil.getAccessToken();
/*String filePath = "D:/image/123.jpg";
String mediaId = WenXinUntil.upload(filePath,token.getToken(), "thumb");
System.out.println("票据"+token.getToken());
System.out.println("有效时间"+token.getExpiresIn());
System.out.println(mediaId);*/
String menu = JSONObject.fromObject(WenXinUntil.initMenu()).toString();
int result = WenXinUntil.createMenu(token.getToken(), menu);
if(result == 0){
System.out.println("创建菜单成功");
}else{
System.out.println("创建菜单失败");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.运行结果:
至此 微信自定义菜单完成!
附源码链接:链接:https://pan.baidu.com/s/11X4TjtupKeR0EIh3Xpsn2Q
提取码:29mo
微信公众号开发整理(五)--自定义菜单相关推荐
- java 微信自定义菜单开发_微信公众号开发之设置自定义菜单实例代码【java版】...
本实例是为了实现在管理后台实现微信菜单的添加删除管理. 1.首先我们需要新建一个数据库表用于存放menu菜单项 可包含的字段有id.父类id.name.排序.是否显示.类型(view.click).链 ...
- 微信公众号开发教程(四)自定义菜单
作者:陈惠,叩丁狼教育高级讲师.原创文章,转载请注明出处. 本篇文章,我们来做一个最常见的,也是用户最喜欢使用的功能--自定义菜单. 因为菜单只需要点一下就可以获取需要的信息,无需用户手动输入关键字, ...
- 微信公众号开发教程[011]-自定义菜单以及个性化菜单
自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单.类型分别有click,view,scancode_push,scancode_waitmsg,pic_sysphoto,pic_pho ...
- 微信公众号开发(五)个性化菜单
微信公众号开发(五)个性化菜单 个性化菜单让公众号的不同用户群体看到不一样的自定义菜单.该接口开放给已认证订阅号和已认证服务号,个性化菜单要求用户的微信客户端版本在iPhone6.2.2,Androi ...
- .Net6+Furion+Sqlsugar+SenparcSdk开发微信公众号系列之八:自定义菜单
一.创建接口 1.1.注意事项 自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单. 一级菜单最多4个汉字,二级菜单最多8个汉字,多出来的部分将会以"..."代替. ...
- 微信公众号开发之实现自定义微信公众号菜单和跳转第三方网页
自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCE ...
- 微信公众号开发整理(一)所有微信资料整理参考慕课网学习而得
1.www.baidu.com搜索:微信公众平台登录,输入账号密码进行登录 2.登录之后找到左边最后一个菜单:开发==>基本配置,如下,获取开发者ID(AppID)及开发者密码(AppSecre ...
- 微信公众号的分类与自定义菜单接口
1.订阅号 为媒体和个人提供一种信息传播方式,主要偏于为用户传达资讯(类似报纸杂志),主要的定位是阅读,每天可以群发1条消息: 2.服务号 为企业,政府或组织提供对用户进行服务,主要偏于服务交互(类似 ...
- 使用微信公众号测试号如何进行自定义菜单的设定
问题描述 在进行微信公众号业务开发的时候,微信公众号的自定义菜单是非常重要的一环,然而在开发中我们是使用不到正式的公众号进行菜单栏的自定义的,都是通过我们个人申请的测试公众号来完成我们的功能开发和测试 ...
- 实例:用C#.NET手把手教你做微信公众号开发(9)--菜单设置
一.菜单定义 先看个直观的图,菜单在公众号的底部,当一个公众号没有设置菜单时是看不到的,设置之后就是下面的样子. 注意事项: 自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单. 一级菜 ...
最新文章
- Mycat分库分表核心技术分析
- 中新赛克数据可视化_中新赛克——能否构建更安全的世界
- 什么是JAX-RS注释?
- 同学之间互相出的一些有趣题目
- 网易被曝暴力裁患绝症员工,回应:存在不近人情的地方,向前同事道歉
- [转]《精通Javascript》笔记:第六章(事件)
- SLAM学习笔记-------------(八)视觉里程计2
- 怎么在html中加入pjax,网页添加Pjax代码实现无刷新加载
- 从春运迁徙图看疫情变化
- 花生壳域名绑定动态IP原理浅析
- 机器学习资料与攻略超强整理吐血推荐(二)
- 表格控件SpreadJS助力上市企业明源云,打造更智慧的地产生态链
- Spring -> Spring Boot、Spring MVC 和 Spring 有什么区别
- python调用pyd_使用python pyd时出错
- Amnesia失忆症攻略(本篇+later+crowd)
- python27是什么文件夹可以删除吗_python如何跳过错误继续运行,同时删除产生错误的文档...
- 微信小程序下拉选择框
- iOS模拟器调试WebView
- 地图数据快速渲染------基于分布式系统的准实时渲染技术(前段+后端)
- SitePoint Podcast#162:以Google为动力