微信自定义菜单_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 微信自定义菜单

微信自定义菜单

 2014/11/11 17:11:54  随心随记  程序员俱乐部  我要评论(0)
  • 摘要:自己写的构造自定义菜单的方法,虽然有些重复,但毕竟是自己写的感觉更清楚些!各位有什么好的意见指出来呀!两个类SubButton(子菜单),ParentButton(父级菜单)。publicclassParentButton{publicstringname;publicList<SubButton>list;}publicclassSubButton{publicstringname;publicstringtype;publicstringurl;publicstringkey;
  • 标签:菜单 自定义

自己写的构造自定义菜单的方法,虽然有些重复,但毕竟是自己写的感觉更清楚些!各位有什么好的意见指出来呀!

两个类SubButton(子菜单),ParentButton(父级菜单)。

public class ParentButton
{
  public string name;
  public List<SubButton> list;
}

public class SubButton
{
  public string name;
  public string type;
  public string url;
  public string key;
}

 

构造好的菜单传给GetCustomMenuJsonData得到正确的Json格式数据。

logs_code_hide('ca5f020d-add6-45bb-bf96-5fcbc46327c5',event)" src="/Upload/Images/2014111117/2B1B950FA3DF188F.gif" alt="" />
public string GetCustomMenuJsonData(List<ParentButton> list)
{
  string jsonStr = "";
  string str = "";
  if (list != null && list.Count > 0)
  {
    foreach (ParentButton parentButton in list)
    {
      if (parentButton != null)
      {
        string subStr = "";
        if (parentButton.list != null && parentButton.list.Count > 0)
        {
          foreach (SubButton button in parentButton.list)
          {
            if (button != null)
            {
              if (subStr != "")
              {
                subStr += ",";
              }
              if (button.type == "click")
              {
                subStr += "{ \"type\":\"click\", \"name\":\"" + button.name + "\",\"key\":\"" + button.key + "\" }";
              }
              else
              {
                subStr += "{ \"type\":\"view\", \"name\":\"" + button.name + "\",\"url\":\"" + button.url + "\" }";
              }

              }

            }

          }
          if (str != "")
          {
            str += ",";
          }
          str += " {\"name\":\"" + parentButton.name + "\", \"sub_button\":[" + subStr + "]}";

        }
      }
      jsonStr = ("{ \"button\":[" + str + "]}");
    }
  return jsonStr;
  }
View Code

 

举例:

Publish List<ParentButton> CreateCustomButton()

{

ParentButton button1 = new ParentButton();

List<SubButton> subButtonList1 = new List<SubButton>();
SubButton subButton = new SubButton();
subButton.name = "百度";
subButton.type = "view";
subButton.url = "www.baidu.com";
subButtonList1.Add(subButton);

subButton = new SubButton();
subButton.name = "谷歌";
subButton.type = "view";
subButton.url = "www.google.com";

subButtonList1.Add(subButton);

button1.name = "搜索"; 
button1.list = subButtonList1;


ParentButton button2 = new ParentButton();
button2.name="其他";

List<ParentButton> list = new List<ParentButton>();
list.Add(button1);
list.Add(button2);

return list;

}
View Code

 

得到json数据后通过

https://api.wexin.qq.com/cgi-bin/token?grant_type=client_credential&appid=AppId&secret=AppSecret

获取到accesstoken,然后通过

https://api.weixin.qq.com/cgi-bin/menu/create?access_token=AccessToken

提交自定义菜单的json数据,生成菜单!

  


                    
                
发表评论
用户名: 匿名