BBAJSBindingGlobalBase.h 2.3 KB
//
//  BBAJSBindingGlobalBase.h
//  SWAN
//
//  Created by baidu on 2018/7/29.
//  Copyright © 2018 baidu. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "BBASMBaseAPIBridge.h"
#import "BBAJSBindingEventBase.h"
#import "BBAJSBindingGlobalBaseExports.h"
#import "BBAJSBindingGlobalBaseDelegate.h"

/**
 * 绑定到全局变量上面的类,这里面的类会占用 JS 虚拟器的内存空间.严格禁止再增加数据结构
 * 函数也尽量不要再增加了
 */

@class BBAJSConsole;
@interface BBAJSBindingGlobalBase :BBAJSBindingEventBase <BBAJSBindingGlobalBaseExports, BBAJSBindingGlobalBaseDelegate>

/**
 * 绑定到全局变量上面的类,这里面的类会占用 JS 虚拟器的内存空间.严格禁止再增加数据结构
 * 函数也尽量不要再增加了
 */


/**
 * @brief 创建全局对象
 *
 * @param jsContext js执行环境
 * @param eventOwner callbackOwner
 * @param JSSDKVersion 前端框架版本号
 * @return BBAJSBindingEventBase
 */
- (instancetype)initWithJSContext:(BBAJSBContext *)jsContext
                       eventOwner:(id)eventOwner
                     JSSDKVersion:(NSString *)JSSDKVersion;

/**
 * @brief 获取UA
 *
 */
@property (nonatomic, strong, readonly) NSString *userAgent;



/**
 * @brief 控制台对象
 *
 */
@property (nonatomic, strong, readonly) BBAJSConsole *console;


/**
 * @brief 当前所处的域,包括 'main', 'openData', 'worker'
 *
 */
@property (nonatomic, strong, readonly) NSString *domain;
@property (nonatomic, copy) NSString *JSSDKVersion;

/**
 * @brief 获取BBAJSBindingGlobalExports协议中所有方法
 *
 * @return method list
 */
+ (NSArray *)globalMethodList:(Protocol *)protocolInstance;

/**
 * 绑定到全局变量上面的类,这里面的类会占用 JS 虚拟器的内存空间.严格禁止再增加数据结构
 * 函数也尽量不要再增加了
 */


#pragma mark - private data

/* @brief 为对应的key值设置私有数据
 *
 * @param data 私有数据
 * @param key 私有数据key值
 */
- (void)setPrivateData:(id)data forKey:(NSString *)key;


/**
 * @brief 根据key值获取私有数据
 *
 * @param key 私有数据key值
 */
- (id)getPrivateDataForKey:(NSString *)key;


/**
 * @brief 根据key值获取私有数据
 *
 * @param key 私有数据key值
 */
- (void)removePrivateDataForKey:(NSString *)key;

@end