BBASMAppJSBindingGlobalBase.h 2.21 KB
//
//  BBASMAppJSBindingGlobalBase.h
//  SWAN
//
//  Created by baidu on 2018/10/30.
//  Copyright © 2018 baidu. All rights reserved.
//

#import "BBAJSBindingGlobalBase.h"

@class BBASMAppJSBindingBridge, BBASMJSEnviroment, BBASMNAViewModule;

@protocol BBASMAppJSBindingGlobalBaseExports <JSExport>
@property (nonatomic, readonly) BBASMJSEnviroment *env;
@property (nonatomic, readonly) NSString *platform;
@property (nonatomic) BBASMAppJSBindingBridge *bridge;
// naView 渲染NAview
@property (nonatomic, readonly) BBASMBaseAPIBridge *NAViewModule;
- (NSString *)getEnvVariables;
- (id)getAPIs;
- (NSDictionary *)getNACanIUseMap;
JSExportAs(include, - (void)includeScriptWithPath:(NSString *)scriptPath);
@end

/**
 * 小程序JSCore内核下绑定到全局变量:_naSwan的对应OC对象
 */
@interface BBASMAppJSBindingGlobalBase : BBAJSBindingGlobalBase <BBASMAppJSBindingGlobalBaseExports>

@property (nonatomic, readonly) BBASMJSEnviroment *env;
@property (nonatomic, readonly) NSString *platform;//ios
@property (nonatomic) BBASMAppJSBindingBridge *bridge;
/// 预加载唯一的标识(一对master和slave保持一致),不向js层暴露
@property (nonatomic, strong) NSString *preloadID;
/// naView 渲染NAview, 和前端约定的名字
@property (nonatomic, strong) BBASMBaseAPIBridge *NAViewModule;

- (instancetype)initWithBasePath:(NSString *)basePath
                         context:(BBAJSBContext *)context
                   extensionPath:(NSString *)extensionPath;

- (void)loadContent;
- (void)includeScriptWithPath:(NSString *)scriptPath;
- (NSString *)getEnvVariables;
- (id)getAPIs;
/// 和前端维护的CanIUseMap进行合并,用作CanIUse能力的数据源
- (NSDictionary *)getNACanIUseMap;

#pragma mark - timeouts & inervals
- (int)setTimeout:(JSValue *)callback
        withDelay:(JSValue *)delay
           params:(NSArray *)params;
- (int)setInterval:(JSValue *)callback
         withDelay:(JSValue *)delay
            params:(NSArray *)params;
- (void)clearTimeout:(NSNumber *)timeoutID;
- (void)clearInterval:(NSNumber *)intervalID;

/**
 小程序销毁时,需要主动调用该函数,用于清理内存
 */
- (void)destroy;

- (void)evaluateScript:(NSString *)script withSourceURL:(NSString *)sourceURL;

@end