作者:王慧永,来自原文地址
最近微信公众号开发了菜单关联小程序功能,实现代码如下
-
/**
-
* 自定义菜单工具类
-
* @author why
-
*
-
*/
-
public class MenuUtil {
-
private static Logger logger = Logger.getLogger(MenuUtil.class);// 日志
-
//创建菜单接口地址
-
public final static String menu_create_url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN";
-
/**
-
*创建菜单
-
* @param menu 菜单实例
-
* @param accessToken 凭证
-
* @return true 成功 false 失败
-
*/
-
public static boolean createMenu(Menu menu, String accessToken){
-
boolean result = false;
-
String url = menu_create_url.replace("ACCESS_TOKEN", accessToken);
-
//将菜单对象转换成JSON字符串
-
String jsonMenu = JSONObject.fromObject(menu).toString();
-
//发起post请求创建菜单
-
JSONObject jsonObject = WeixinUtil.httpRequest(url, "POST", jsonMenu);
-
if(null != jsonObject){
-
int errorCode = jsonObject.getInt("errcode");
-
String errorMsg = jsonObject.getString("errmsg");
-
System.out.println("====================="+errorCode+" "+errorMsg);
-
if(0 == errorCode){
-
result = true;
-
}else{
-
result = false;
-
logger.error("创建菜单失败errorCode:{"+errorCode+"} errorMsg:{"+errorMsg+"}");
-
System.out.println(errorCode+" "+errorMsg);
-
}
-
}
-
return result;
-
}
-
}
-
/**
-
* 类名称:ToXcx.java
-
* 类描述:小程序菜单实体类
-
* 作 者:why
-
* 时 间:2017年4月21日
-
*/
-
public class ToXcx extends Button {
-
private String type; //类型
-
private String name; //菜单名称
-
private String url; //不支持小程序跳转地址
-
private String appid; //小程序appid
-
private String pagepath; //小程序页面路径
-
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 String getUrl() {
-
return url;
-
}
-
public void setUrl(String url) {
-
this.url = url;
-
}
-
public String getAppid() {
-
return appid;
-
}
-
public void setAppid(String appid) {
-
this.appid = appid;
-
}
-
public String getPagepath() {
-
return pagepath;
-
}
-
public void setPagepath(String pagepath) {
-
this.pagepath = pagepath;
-
}
-
-
}
创建菜单
-
ToXcx xcxBtn1 = new ToXcx();
-
xcxBtn1.setName("我要寄件");
-
xcxBtn1.setType("miniprogram");
-
xcxBtn1.setUrl("");
-
xcxBtn1.setAppid("");
-
xcxBtn1.setPagepath("pages/send/send");
调用
-
MenuUtil.createMenu(菜单json, token);
|