生活随笔
收集整理的這篇文章主要介紹了
微信公众帐号开发教程第15篇-自定义菜单的view类型(访问网页)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
引言及內(nèi)容概要
? ? 距離寫上一篇文章《自定義菜單的創(chuàng)建及菜單事件響應(yīng)》整整過了兩個月的時間,那時公眾平臺還沒有開放view類型的菜單。在不久前,微信公眾平臺悄悄開放了view類型的菜單,卻沒有在首頁發(fā)布任何通知,貌似微信團(tuán)隊(duì)很喜歡這么干。一個偶然的機(jī)會,我留意到API文檔的自定義菜單接口發(fā)生了變化,增加了對菜單view類型的說明:
? view(訪問網(wǎng)頁):
用戶點(diǎn)擊view類型按鈕后,會直接跳轉(zhuǎn)到開發(fā)者指定的url中。
? ? 于是我在第一時間更新了小q機(jī)器人(微信號:xiaoqrobot)的菜單,在一級菜單“更多”下增加了二級菜單“使用幫助”,點(diǎn)擊該菜單項(xiàng)會直接跳轉(zhuǎn)到網(wǎng)頁,如下圖所示。
? ? 本篇文章就為大家介紹下view類型的自定義菜單該如何創(chuàng)建。
自定義菜單的兩種類型(click和view)
? ? 公眾平臺API文檔中給出了自定義菜單的json結(jié)構(gòu)示例,我從中截取兩個菜單項(xiàng)的json代碼,一個是click類型,另一個是view類型,如下所示。
[html]?view plaincopy
{?????????"type":"click",??????"name":"今日歌曲",??????"key":"V1001_TODAY_MUSIC"??},??{??????"type":"view",??????"name":"歌手簡介",??????"url":"http://www.qq.com/"??}??
? ? 從上面可以看出,兩種類型的菜單除了type值不同之外,屬性也有差別。click類型的菜單有key屬性,而view類型的菜單沒有key屬性,與之對應(yīng)的是url屬性。通過上一篇的學(xué)習(xí)我們知道,key值是用于判斷用戶點(diǎn)擊了哪個click類型的菜單項(xiàng)。而
view類型的菜單沒有key屬性,目前無法在公眾賬號后臺判斷是否有用戶點(diǎn)擊了view類型的菜單項(xiàng),也就沒辦法知道哪個用戶點(diǎn)擊了view類型的菜單項(xiàng)。
建立view類型的菜單對象
? ? View類型的菜單有3個屬性:type、name和url。在上一篇文章中,我們創(chuàng)建了菜單項(xiàng)的基類Button,Button類只有一個屬性name。View類型的菜單對象也需要繼承Button類,代碼如下:
[java]?view plaincopy
package?org.liufeng.weixin.pojo;???????????public?class?ViewButton?extends?Button?{??????private?String?type;??????private?String?url;????????public?String?getType()?{??????????return?type;??????}????????public?void?setType(String?type)?{??????????this.type?=?type;??????}????????public?String?getUrl()?{??????????return?url;??????}????????public?void?setUrl(String?url)?{??????????this.url?=?url;??????}??}??
創(chuàng)建帶view類型的菜單示例
? ? 我們對前一篇文章中給出的菜單創(chuàng)建代碼進(jìn)行調(diào)整,增加view類型的菜單項(xiàng),完整的菜單創(chuàng)建代碼如下:
[java]?view plaincopy
package?org.liufeng.weixin.main;????import?org.liufeng.weixin.pojo.AccessToken;??import?org.liufeng.weixin.pojo.Button;??import?org.liufeng.weixin.pojo.CommonButton;??import?org.liufeng.weixin.pojo.ComplexButton;??import?org.liufeng.weixin.pojo.Menu;??import?org.liufeng.weixin.pojo.ViewButton;??import?org.liufeng.weixin.util.WeixinUtil;??import?org.slf4j.Logger;??import?org.slf4j.LoggerFactory;???????????public?class?MenuManager?{??????private?static?Logger?log?=?LoggerFactory.getLogger(MenuManager.class);????????public?static?void?main(String[]?args)?{????????????????????String?appId?=?"000000000000000000";????????????????????String?appSecret?=?"00000000000000000000000000000000";??????????????????????AccessToken?at?=?WeixinUtil.getAccessToken(appId,?appSecret);????????????if?(null?!=?at)?{????????????????????????????int?result?=?WeixinUtil.createMenu(getMenu(),?at.getToken());??????????????????????????????if?(0?==?result)??????????????????log.info("菜單創(chuàng)建成功!");??????????????else??????????????????log.info("菜單創(chuàng)建失敗,錯誤碼:"?+?result);??????????}??????}??????????????????private?static?Menu?getMenu()?{??????????CommonButton?btn11?=?new?CommonButton();??????????btn11.setName("天氣預(yù)報");??????????btn11.setType("click");??????????btn11.setKey("11");????????????CommonButton?btn12?=?new?CommonButton();??????????btn12.setName("公交查詢");??????????btn12.setType("click");??????????btn12.setKey("12");????????????CommonButton?btn13?=?new?CommonButton();??????????btn13.setName("周邊搜索");??????????btn13.setType("click");??????????btn13.setKey("13");????????????CommonButton?btn14?=?new?CommonButton();??????????btn14.setName("歷史上的今天");??????????btn14.setType("click");??????????btn14.setKey("14");????????????????????CommonButton?btn15?=?new?CommonButton();??????????btn15.setName("電影排行榜");??????????btn15.setType("click");??????????btn15.setKey("32");????????????CommonButton?btn21?=?new?CommonButton();??????????btn21.setName("歌曲點(diǎn)播");??????????btn21.setType("click");??????????btn21.setKey("21");????????????CommonButton?btn22?=?new?CommonButton();??????????btn22.setName("經(jīng)典游戲");??????????btn22.setType("click");??????????btn22.setKey("22");????????????CommonButton?btn23?=?new?CommonButton();??????????btn23.setName("美女電臺");??????????btn23.setType("click");??????????btn23.setKey("23");????????????CommonButton?btn24?=?new?CommonButton();??????????btn24.setName("人臉識別");??????????btn24.setType("click");??????????btn24.setKey("24");????????????CommonButton?btn25?=?new?CommonButton();??????????btn25.setName("聊天嘮嗑");??????????btn25.setType("click");??????????btn25.setKey("25");????????????CommonButton?btn31?=?new?CommonButton();??????????btn31.setName("Q友圈");??????????btn31.setType("click");??????????btn31.setKey("31");????????????CommonButton?btn33?=?new?CommonButton();??????????btn33.setName("幽默笑話");??????????btn33.setType("click");??????????btn33.setKey("33");????????????????????CommonButton?btn34?=?new?CommonButton();??????????btn34.setName("用戶反饋");??????????btn34.setType("click");??????????btn34.setKey("34");????????????????????CommonButton?btn35?=?new?CommonButton();??????????btn35.setName("關(guān)于我們");??????????btn35.setType("click");??????????btn35.setKey("35");????????????????????ViewButton?btn32?=?new?ViewButton();??????????btn32.setName("使用幫助");??????????btn32.setType("view");??????????btn32.setUrl("http://liufeng.gotoip2.com/xiaoqrobot/help.jsp");????????????ComplexButton?mainBtn1?=?new?ComplexButton();??????????mainBtn1.setName("生活助手");??????????mainBtn1.setSub_button(new?Button[]?{?btn11,?btn12,?btn13,?btn14,?btn15?});????????????ComplexButton?mainBtn2?=?new?ComplexButton();??????????mainBtn2.setName("休閑驛站");??????????mainBtn2.setSub_button(new?Button[]?{?btn21,?btn22,?btn23,?btn24,?btn25?});????????????ComplexButton?mainBtn3?=?new?ComplexButton();??????????mainBtn3.setName("更多");??????????mainBtn3.setSub_button(new?Button[]?{?btn31,?btn33,?btn34,?btn35,?btn32?});????????????????????????????Menu?menu?=?new?Menu();??????????menu.setButton(new?Button[]?{?mainBtn1,?mainBtn2,?mainBtn3?});????????????return?menu;??????}??}??
119~122行代碼就是用于創(chuàng)建view類型菜單項(xiàng)的。上面的菜單結(jié)構(gòu)也是小q機(jī)器人(微信號:xiaoqrobot)目前在使用的,讀者可以對照著理解。
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!
總結(jié)
以上是生活随笔為你收集整理的微信公众帐号开发教程第15篇-自定义菜单的view类型(访问网页)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。