BBASchemeDescriptionManager.h
3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
//
// BBASchemeDescriptionManager.h
// BBASchemeDispatcherExt
//
// Created by Wang,Peng(MAD) on 2019/3/15.
// Copyright © 2019年 Baidu. All rights reserved.
/*
* 描述表管理类,通过传入的路径加载描述表信息
* 业务通过接口获取描述表list 注入到webcore中,达到对前端暴露api的目的
* 收集方案见 http://agroup.baidu.com/mobilebaidu/md/article/1663718
*/
#import <Foundation/Foundation.h>
#import "BDPSDRegistryRepository.h"
#import "BDPSDError.h"
NS_ASSUME_NONNULL_BEGIN
@interface BBASchemeDescriptionManager : NSObject
- (instancetype)init NS_UNAVAILABLE;
+ (instancetype)new NS_UNAVAILABLE;
+ (instancetype)sharedInstance;
/// 注册注册表仓库
/// @param repository 注册表仓库实例
- (int)registerLocalRegistryRepository:(id<BDPSDRegistryRepository>)repository;
/**
* @abstract 配置描述表修复数据
* @param descPatchData 描述表补丁
*/
- (void)setDescPatchData:(NSArray *)descPatchData;
/**
* @abstract 配置描述表注入的域名白名单
* @param wlist 域名白名单
*/
- (void)setJSNativeDomainWList:(NSArray *)wlist;
/**
* @abstract 根据框架类型获取对应的描述表列表,
* ⚠️会加载文件,合并描述表, 建议业务自己缓存desc不要重复调用
* @param frameType 框架类型,由业务定义 ,如 swan_web (小程序 webview使用) swan_jsc (小程序 jscore使用)
* @param error 错误返回
* @result 对应框架使用的描述表
*/
- (nullable NSArray *)descriptionWithFrameType:(NSString *)frameType error:(NSError * _Nullable __autoreleasing *)error;
/**
* @abstract 根据框架类型获取对应的描述表列表,可以传入多个frameTypes
* ⚠️会加载文件,合并描述表, 建议业务自己缓存desc不要重复调用
* @param frameTypes 框架类型,由业务定义 ,
如 swan_web (小程序 webview使用)
swan_jsc (小程序 jscore使用)
basic_web (基础端能力)
* @param error 错误返回
* @result 对应框架使用的描述表
*/
- (NSArray *)descriptionWithFrameTypes:(NSArray<NSString *>*)frameTypes error:(NSError * _Nullable __autoreleasing *)error;
/**
* @abstract 默认的scheme协议头
* @result scheme协议头
*/
- (NSString *)defaultSchemeHeader;
/**
* @abstract 与Boxx前端中间层交互的接口封装 有内存缓存 http://agroup.baidu.com/swandocuments/md/article/1864304
* @param frameTypes 框架类型,由业务定义 ,如 swan_web (小程序 webview使用) swan_jsc (小程序 jscore使用)
* @result js func str
*/
- (NSString *)getAPIsJSFuncWithFrameTypes:(NSArray<NSString *>*)frameTypes;
@end
NS_ASSUME_NONNULL_END