如何使用通讯库开发公众号菜单?

使用IMKit时,聊天界面带有公众号菜单。使用IMLib开发时,如何开发公众号菜单?
发布时间: 2015-10-29 16:34

回答:

1,首先要获取公众号菜单信息。

调用通讯库的getPublicServiceProfile:publicServiceId:来获取公众号帐号信息,里面有个属性是公众帐号菜单

/**

 * 公众服务账号菜单

 */

@property(nonatomic, strong) RCPublicServiceMenu *menu;

2,要了解公众号菜单的结构。

菜单中有个数组,数组中的元素是菜单项。菜单项的定义如下:

@interface RCPublicServiceMenuItem : NSObject


/**

 * 菜单Id

 */

@property(nonatomic, strong) NSString *id;

/**

 * 菜单标题

 */

@property(nonatomic, strong) NSString *name;

/**

 * 菜单链接

 */

@property(nonatomic, strong) NSString *url;

/**

 * 菜单类型

 */

@property(nonatomic) RCPublicServiceMenuItemType type;

/**

 * 子菜单,类型RCPublicServiceMenuItem

 */

@property(nonatomic, strong) NSArray *subMenuItems;

@end

其中。如果type的定义如下:

/**

 *  公众服务号菜单项类型

 */

typedef NS_ENUM(NSUInteger, RCPublicServiceMenuItemType) {

    /**

     *  公众账号菜单组,内含有子菜单

     */

    RC_PUBLIC_SERVICE_MENU_ITEM_GROUP = 0,

    /**

     *  公众账号菜单项, 响应查看事件

     */

    RC_PUBLIC_SERVICE_MENU_ITEM_VIEW = 1,

    /**

     *  公众账号菜单项, 响应点击事件

     */

    RC_PUBLIC_SERVICE_MENU_ITEM_CLICK = 2,


};

当type为group时,这是菜单就有子菜单。

另外两种分别是察看和点击类型。

3,公众号菜单的事件处理。

group类型的菜单点击时,会打开子菜单。菜单最多为2级。

View类型点击时,会调用浏览器打开链接,同时发送RCPublicServiceCommandMessage消息到后台。

Click类型点击时,会发RCPublicServiceCommandMessage消息到服务器后退。

RCPublicServiceCommandMessage消息可以用菜单项来构造,然后发送给当前公众号。