BBASMPlugin+TabBarSettings.h 7.06 KB
//
//  BBASMPlugin+TabBarSettings.h
//  SWAN
//
//  Created by baidu on 15/03/2018.
//  Copyright © 2018 baidu. All rights reserved.
//

#import "BBASMPlugin.h"

#define kBBASMCallBackTabBarErrorStatus     @"1001"
#define kBBASMCallBackTabBarErrorMSG        @"当前页面不含tabbar"

@interface BBASMPlugin (TabBarSettings)

/**
 * 描  述: 为 tabBar 某一项的右上角添加文本
 * 示  例: baiduboxapp://swanAPI/setTabBarBadge?params=\$params&callback=\$callback
 * 文  档: http://ft.baidu.com/#/scheme/swan_settabbarbadge
 * 备  注:
 * ********** description ************
 * @name:      setTabBarBadge
 * @authority: swanAPI
 * @path:      /setTabBarBadge
 * @args:      [{"name": "index", "value": "string"}, {"name": "text", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)setTabBarBadge:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 移除 tabBar 某一项右上角的文本
 * 示  例: baiduboxapp://swanAPI/closeTabBarBadge?params=\$params&callback=\$callback
 * 文  档: http://ft.baidu.com/#/scheme/swan_closetabbarbadge
 * 备  注:
 * ********** description ************
 * @name:      removeTabBarBadge
 * @authority: swanAPI
 * @path:      /closeTabBarBadge
 * @args:      [{"name": "index", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)closeTabBarBadge:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 显示 tabBar 某一项的右上角的红点
 * 示  例: baiduboxapp://swanAPI/openTabBarRedDot?params=\$params&callback=\$callback
 * 文  档: http://ft.baidu.com/#/scheme/swan_opentabbarreddot
 * 备  注:
 * ********** description ************
 * @name:      showTabBarRedDot
 * @authority: swanAPI
 * @path:      /openTabBarRedDot
 * @args:      [{"name": "index", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)openTabBarRedDot:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 隐藏 tabBar 某一项的右上角的红点
 * 示  例: baiduboxapp://swanAPI/closeTabBarRedDot?params=\$params&callback=\$callback
 * 文  档: http://ft.baidu.com/#/scheme/swan_closetabbarreddot
 * 备  注:
 * ********** description ************
 * @name:      hideTabBarRedDot
 * @authority: swanAPI
 * @path:      /closeTabBarRedDot
 * @args:      [{"name": "index", "value": "string"}, {"name": "cb", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.interactionBridge.hideTabBarRedDot"}}}
 */
- (void)closeTabBarRedDot:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 动态设置 tabBar 的整体样式
 * 示  例: baiduboxapp://swanAPI/setTabBarStyle?params=\$params&callback=\$callback
 * 文  档: http://ft.baidu.com/#/scheme/swan_settabbarstyle
 * 备  注:
 * ********** description ************
 * @name:      setTabBarStyle
 * @authority: swanAPI
 * @path:      /setTabBarStyle
 * @args:      [{"name": "color", "value": "string="}, {"name": "selectedColor", "value": "string="}, {"name": "backgroundColor", "value": "string="}, {"name": "borderStyle", "value": {"oneOf": ["black", "white"]}}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)setTabBarStyle:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 动态设置 tabBar 某一项的内容
 * 示  例: baiduboxapp://swanAPI/setTabBarItem?params=\$params&callback=\$callback
 * 文  档: http://ft.baidu.com/#/scheme/swan_settabbaritem
 * 备  注:
 * ********** description ************
 * @name:      setTabBarItem
 * @authority: swanAPI
 * @path:      /setTabBarItem
 * @args:      [{"name": "index", "value": "string"}, {"name": "text", "value": "string="}, {"name": "iconPath", "value": "string="}, {"name": "selectedIconPath", "value": "string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.interactionBridge.setTabBarItem"}}}
 */
- (void)setTabBarItem:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 显示 tabBar
 * 示  例: baiduboxapp://swanAPI/openTabBar?callback=\$callback
 * 文  档: http://ft.baidu.com/#/scheme/swan_opentabbar
 * 备  注:
 * ********** description ************
 * @name:      showTabBar
 * @authority: swanAPI
 * @path:      /openTabBar
 * @args:      [{"name": "animation", "value": "boolean"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)openTabBar:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 隐藏 tabBar
 * 示  例: baiduboxapp://swanAPI/closeTabBar?callback=\$callback
 * 文  档: http://ft.baidu.com/#/scheme/swan_closetabbar
 * 备  注:
 * ********** description ************
 * @name:      hideTabBar
 * @authority: swanAPI
 * @path:      /closeTabBar
 * @args:      [{"name": "animation", "value": "boolean"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)closeTabBar:(BBASchemeDispatcher *)dispatcher;

#pragma mark - not API

/**
 * 动态设置tabBar某一项的内容
 * @param appId 小程序appId
 * @param params 端能力参数
 * @param action 端能力名称
 * @return 调用结果
 */
+ (NSDictionary *)setTabBarItemWithAppID:(NSString *)appId
                                  params:(NSDictionary *)params
                              actionName:(NSString *)action;

/**
 * 隐藏tabBar某一项的右上角的红点
 * @param appId 小程序appId
 * @param params 端能力参数
 * @param action 端能力名称
 * @param completion 端能力参数校验回调
 * @return 调用结果
 */
+ (NSDictionary *)hideTabBarRedDotWithAppID:(NSString *)appId
                                     params:(NSDictionary *)params
                                 actionName:(NSString *)action
                                 completion:(void (^)(NSDictionary *completionData))completion;

/**
 * @brief 显示 tabBar
 * @param appId 小程序appId
 * @param params 端能力参数
 * @param action 端能力名称
 * @return NSDictionary 调用结果
 */
+ (NSDictionary *)showTabBarWithAppId:(NSString *)appId
                               params:(NSDictionary *)params
                           actionName:(NSString *)action;

/**
 * @brief 隐藏 tabBar
 * @param appId 小程序appId
 * @param params 端能力参数
 * @param action 端能力名称
 * @return NSDictionary 调用结果
 */
+ (NSDictionary *)hideTabBarWithAppId:(NSString *)appId
                               params:(NSDictionary *)params
                           actionName:(NSString *)action;
@end