前不久微信上线了个性化菜单接口,Senparc.Weixin SDK也已经同步更新。
本次更新升级Senparc.Weixin.MP版本到v13.5.2,依赖Senparc.Weixin版本4.5.4。.NET4.5(master) / .NET4.0两个分支都已同步更新。
由于个性化菜单变化比较大,所以对整个菜单接口进行了目前为止最大面积的重构(可以向下兼容)。
相比之前的自定义菜单,目前整个菜单相关功能针对文件结构进行了全面的整理,:
接口
菜单接口已经全部归入CommonAPIs/Menu目录下,CommonApi部分类下面再分出3个类文件:
文件名 | 说明 |
CommonApi.Menu.Common.cs | 菜单公共方法 |
CommonApi.Menu.Conditional.cs | 个性化菜单 |
CommonApi.Menu.Custom.cs | 普通自定义菜单 |
菜单接口文件
其中自定义菜单接口已经确保向下兼容,以前如果有已经开发自定义菜单功能的项目,可以放心升级。
个性化菜单类内容如下:
1 /*----------------------------------------------------------------
2 Copyright (C) 2015 Senparc
3
4 文件名:CommonApi.Menu.Conditional
5 文件功能描述:个性化自定义菜单接口
6
7
8 创建标识:Senparc - 20151222
9
10 修改标识:Senparc - 20151222
11 修改描述:v13.5.1 添加个性化菜单接口
12 ----------------------------------------------------------------*/
13
14 /*
15 API:http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html
16 */
17
18 using Senparc.Weixin.Entities;
19 using Senparc.Weixin.Helpers;
20 using Senparc.Weixin.MP.Entities;
21 using Senparc.Weixin.MP.Entities.Menu;
22
23 namespace Senparc.Weixin.MP.CommonAPIs
24 {
25 public partial class CommonApi
26 {
27 /// <summary>
28 /// 创建个性化菜单
29 /// </summary>
30 /// <param name="accessTokenOrAppId">AccessToken或AppId。当为AppId时,如果AccessToken错误将自动获取一次。当为null时,获取当前注册的第一个AppId。</param>
31 /// <param name="buttonData">菜单内容</param>
32 /// <returns></returns>
33 public static CreateMenuConditionalResult CreateMenuConditional(string accessTokenOrAppId, ConditionalButtonGroup buttonData, int timeOut = Config.TIME_O