微信自定义菜单的两种类型click和view.docx

上传人:b****8 文档编号:9916337 上传时间:2023-02-07 格式:DOCX 页数:7 大小:15.73KB
下载 相关 举报
微信自定义菜单的两种类型click和view.docx_第1页
第1页 / 共7页
微信自定义菜单的两种类型click和view.docx_第2页
第2页 / 共7页
微信自定义菜单的两种类型click和view.docx_第3页
第3页 / 共7页
微信自定义菜单的两种类型click和view.docx_第4页
第4页 / 共7页
微信自定义菜单的两种类型click和view.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

微信自定义菜单的两种类型click和view.docx

《微信自定义菜单的两种类型click和view.docx》由会员分享,可在线阅读,更多相关《微信自定义菜单的两种类型click和view.docx(7页珍藏版)》请在冰豆网上搜索。

微信自定义菜单的两种类型click和view.docx

微信自定义菜单的两种类型click和view

微信自定义菜单的两种类型(click和view)

自定义菜单的两种类型(click和view)

公众平台API文档中给出了自定义菜单的json结构示例,我从中截取两个菜单项的json代码,一个是click类型,另一个是view类型,如下所示。

{

"type":

"click",

"name":

"今日歌曲",

"key":

"V1001_TODAY_MUSIC"

},

{

"type":

"view",

"name":

"歌手简介",

"url":

"qq/"

}

从上面可以看出,两种类型的菜单除了type值不同之外,属性也有差别。

click类型的菜单有key属性,而view类型的菜单没有key属性,与之对应的是url属性。

通过上一篇的学习我们知道,key值是用于判断用户点击了哪个click类型的菜单项。

而view类型的菜单没有key属性,目前无法在公众账号后台判断是否有用户点击了view类型的菜单项,也就没办法知道哪个用户点击了view类型的菜单项。

建立view类型的菜单对象

View类型的菜单有3个属性:

type、name和url。

在上一篇文章中,我们创建了菜单项的基类Button,Button类只有一个属性name。

View类型的菜单对象也需要继承Button类,代码如下:

/**

*view类型的菜单

*

*@author

*@date

*/

publilassViewButtonextendsButton{

privateStringtype;

privateStringurl;

publicStringgetType(){

returntype;

}

publicvoidsetType(Stringtype){

this.type=type;

}

publicStringgetUrl(){

returnurl;

}

publicvoidsetUrl(Stringurl){

this.url=url;

}

}创建带view类型的菜单示例

我们对前一篇文章中给出的菜单创建代码进行调整,增加view类型的菜单项,完整的菜单创建代码如下:

import.liufeng.weixin.pojo.AessToken;

import.liufeng.weixin.pojo.Button;

import.liufeng.weixin.pojo.CommonButton;

import.liufeng.weixin.pojo.ComplexButton;

import.liufeng.weixin.pojo.Menu;

import.liufeng.weixin.pojo.ViewButton;

import.liufeng.weixin.util.WeixinUtil;

import.slf4j.Logger;

import.slf4j.LoggerFactory;

/**

*菜单管理器类

*

*@author

*@date2013-08-08

*/

publilassMenuManager{

privatestaticLoggerlog=LoggerFactory.getLogger(MenuManager.class);

publicstaticvoidmain(String[]args){

//第三方用户唯一凭证

StringappId="000000000000000000";

//第三方用户唯一凭证密钥

StringappSecret="00000000000000000000000000000000";

//调用接口获取aess_token

AessTokenat=WeixinUtil.getAessToken(appId,appSecret);

if(null!

=at){

//调用接口创建菜单

intresult=WeixinUtil.createMenu(getMenu(),at.getToken());

//判断菜单创建结果

if(0==result)

log.info("菜单创建成功!

");

else

log.info("菜单创建失败,错误码:

"+result);

}

}

/**

*组装菜单数据

*

*@return

*/

privatestaticMenugetMenu(){

CommonButtonbtn11=newCommonButton();

btn11.setName("天气预报");

btn11.setType("click");

btn11.setKey("11");

CommonButtonbtn12=newCommonButton();

btn12.setName("公交查询");

btn12.setType("click");

btn12.setKey("12");

CommonButtonbtn13=newCommonButton();

btn13.setName("周边搜索");

btn13.setType("click");

btn13.setKey("13");

CommonButtonbtn14=newCommonButton();

btn14.setName("历史上的今天");

btn14.setType("click");

btn14.setKey("14");

CommonButtonbtn15=newCommonButton();

btn15.setName("电影排行榜");

btn15.setType("click");

btn15.setKey("32");

CommonButtonbtn21=newCommonButton();

btn21.setName("歌曲点播");

btn21.setType("click");

btn21.setKey("21");

CommonButtonbtn22=newCommonButton();

btn22.setName("经典游戏");

btn22.setType("click");

btn22.setKey("22");

CommonButtonbtn23=newCommonButton();

btn23.setName("美女电台");

btn23.setType("click");

btn23.setKey("23");

CommonButtonbtn24=newCommonButton();

btn24.setName("人脸识别");

btn24.setType("click");

btn24.setKey("24");

CommonButtonbtn25=newCommonButton();

btn25.setName("聊天唠嗑");

btn25.setType("click");

btn25.setKey("25");

CommonButtonbtn31=newCommonButton();

btn31.setName("Q友圈");

btn31.setType("click");

btn31.setKey("31");

CommonButtonbtn33=newCommonButton();

btn33.setName("幽默笑话");

btn33.setType("click");

btn33.setKey("33");

CommonButtonbtn34=newCommonButton();

btn34.setName("用户反馈");

btn34.setType("click");

btn34.setKey("34");

CommonButtonbtn35=newCommonButton();

btn35.setName("关于我们");

btn35.setType("click");

btn35.setKey("35");

ViewButtonbtn32=newViewButton();

btn32.setName("使用帮助");

btn32.setType("view");

btn32.setUrl("gotoip2/xiaoqrobot/help.jsp");

ComplexButtonmainBtn1=newComplexButton();

mainBtn1.setName("生活助手");

mainBtn1.setSub_button(newButton[]{btn11,btn12,btn13,btn14,btn15});

ComplexButtonmainBtn2=newComplexButton();

mainBtn2.setName("休闲驿站");

mainBtn2.setSub_button(newButton[]{btn21,btn22,btn23,btn24,btn25});

ComplexButtonmainBtn3=newComplexButton();

mainBtn3.setName("更多");

mainBtn3.setSub_button(newButton[]{btn31,btn33,btn34,btn35,btn32});

/**

*这是公众号xiaoqrobot目前的菜单结构,每个一级菜单都有二级菜单项<br

*

*在某个一级菜单下没有二级菜单的情况,menu该如何定义呢<br

*比如,第三个一级菜单项不是“更多体验”,而直接是“幽默笑话”,那么menu应该这样定义:

<br

*menu.setButton(newButton[]{mainBtn1,mainBtn2,btn33});

*/

Menumenu=newMenu();

menu.setButton(newButton[]{mainBtn1,mainBtn2,mainBtn3});

returnmenu;

}

}原作者:

柳峰

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1