菜单的自定义开发,注意:有些参数的命名与java的常规命名不同,目的是为了xml形式返回数据的便利性
model:
public class Button {
private String name;
public class ClickButton extends Button {
private String type;
private String key;
public class ComplexButton extends Button {
private Button[] sub_button;
public class Menu {
private Button[] button;
public class ViewButton extends Button {
private String type;
private String url;
menuConstant:
public class MenuConstant {
/**POST 菜单创建*/
public static final String MENU_CREATE_URL = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN";
/**GET 菜单查询*/
public static final String MENU_GET_URL = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=ACCESS_TOKEN";
/**GET 菜单删除*/
public static final String MENU_DELETE_URL = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=ACCESS_TOKEN";
/**创建菜单成功*/
public static final int MENU_SUCCESS = 0;
}
public class MenuUtil {
/**
* 创建菜单
* @author wuyw
* 2015-7-30上午10:07:30
* @param menu 菜单
* @param accessToken 凭证
* @return
*/
public static boolean createMenu (Menu menu, String accessToken) {
boolean result = false;
String requestUrl = MenuConstant.MENU_CREATE_URL.replace("ACCESS_TOKEN", accessToken);
//将菜单menu转成json对象
String jsonMenu = JSONObject.fromObject(menu).toString();
//新增menu的请求
JSONObject jsonObject = TokenUtil.httpsRequest(requestUrl, BaseConstant.TOKEN_URL_POST, jsonMenu);
if(MenuConstant.MENU_SUCCESS == jsonObject.getInt("errcode")){
result = false;
}
return result;
}
/**
* 获取菜单名称
* @author wuyw
* 2015-7-30上午10:22:35
* @param accessToken
* @return
*/
public static String getMenu (String accessToken) {
String result = null;
String requestUrl = MenuConstant.MENU_GET_URL.replace("ACCESS_TOKEN", accessToken);
JSONObject jsonObject = TokenUtil.httpsRequest(requestUrl, BaseConstant.TOKEN_URL_GET, null);
if (null != jsonObject) {
result = jsonObject.toString();
}
return result;
}
/**
* 删除菜单
* @author wuyw
* 2015-7-30上午10:38:28
* @param accessToken
* @return
*/
public static boolean deleteMenu (String accessToken) {
boolean result = false;
String requestUrl = MenuConstant.MENU_DELETE_URL.replace("ACCESS_TOKEN", accessToken);
JSONObject jsonObject = TokenUtil.httpsRequest(requestUrl, BaseConstant.TOKEN_URL_GET, null);
if (null != jsonObject && MenuConstant.MENU_SUCCESS == jsonObject.getInt("errcode")) {
result = true;
}
return result;
}
}