BBASMPlatformAdapterProtocol.h
6.91 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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
//
// BBASMPlatformAdapterProtocol.h
// SWAN
//
// Created by baidu on 2018/9/11.
// Copyright © 2018年 baidu. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "BBASMAdapterBaseImplement.h"
@protocol BBASMPlatformAdapterProtocol <NSObject>
/// @brief 设置宿主方的配置信息的union-cfg.json文件路径,来源于开源平台下的宿主配置数据,在小&程&序SDK2.26版替换“+ (NSDictionary *)hostConfig”接口
/// @return NSString 返回当前宿主的union-cfg.json的文件路径
+ (NSString *)hostConfigFilePath;
/// 获取设备唯一标识,百度系的产品使用cuid生成,开源宿主使用自己的生成规则
+ (NSString *)getDeviceIdentity;
/**
* @brief 获取端能力描述表需要存放的完整路径
* @return 返回端能力描述表存放的完整路径
*/
+ (NSString *)pluginDescriptionPath;
@optional
/**
* @brief private:解决百度系内部产品共同初始化BDPAppearance库,引起冲突(该方法仅在百度系可使用, 宿主方不必实现)
*
* @return NO: 小程序内部需要初始化BDPAppearance库(默认NO), YES:宿主必须自己初始化BDPAppearance库
*/
+ (BOOL)shouldNotInitBDPAppearance;
/// @brief private:宿主通过该接口可以设置当前是否是青少年模式。手百青少年模式下菜单面板中去掉消息/分享/添加收藏/全部通知/全部私信功能入口, 屏蔽分享、关注功能
/// @return YES:青少年模式 NO:非青少年模式,默认是NO非青少年模式
+ (BOOL)isTeenagerStyle;
#pragma mark extension接口
/**
* @brief 宿主私有端能力可以挂在宿主自己的命名空间下,需要保证该字段与私有端能力描述表name的前缀一致(不实现,默认hostName)
*
* @return NSString
*/
+ (NSString *)getExtensionName;
/**
* @brief 获取预置extension包文件的完整路径,要求文件格式是zip
* @return 返回预置extension包的完整路径
*/
+ (NSString *)presetExtensionPackageBundlePath;
/**
* @brief 获取预置game-extension包文件的完整路径,要求文件格式是zip
* @return 返回预置game-extension包的完整路径
*/
+ (NSString *)presetGameExtensionPackageBundlePath;
/**
* @brief 获取预置extension包版本号
* @return 返回预置extension包版本号
*/
+ (NSString *)presetExtensionPackageVersion;
/**
* @brief 获取预置game-extension包版本号
* @return 返回预置game-extension包版本号
*/
+ (NSString *)presetGameExtensionPackageVersion;
/**
* @brief 获取预置extension包版本 code
*
* @return extension包版本 code
*/
+ (NSNumber *)presetExtensionPKGVersionCode;
/**
* @brief 获取预置game-extension包版本 code
*
* @return game-extension包版本 code
*/
+ (NSNumber *)presetGameExtensionPKGVersionCode;
/// private:百度系产品;mtj的唯一标识
+ (NSString *)mtjCUID;
/**
* @brief 自定义UA,不带webview信息,可以根据需要自行扩展
*
* @return NSString,自定义UA
*/
+ (NSString *)commonUserAgent;
/**
* @brief webView UA navigator.userAgent
*
* @return NSString,webView UA
*/
+ (NSString *)webViewUserAgent;
/**
* @brief 获取预置小程序/小游戏包的完整文件夹路径
* @return 返回预置小程序/小游戏包的完整文件夹路径
*/
+ (NSString *)presetSmartAppRootPath;
/**
* @brief 是否不使用预置的小程序/游戏运行时环境
* @return YES:不使用;NO:使用,默认为NO
*/
+ (BOOL)isNoUsePresetCore;
#pragma mark - OpenApp涉及的相关平台参数
/// Ali baichuan平台注册的appKey
+ (NSString *)baichuanAppKey;
/// Ali baichuan平台注册的appName
+ (NSString *)baichuanAppName;
#pragma mark - 消息push
/**
* @brief 方便宿主server与小程序建立映射关系,在发起formid、直连支付、聚合支付成功后,向宿主发起回调,宿主如果实现该接口,需要将message传给自己的server
*
* @param message push信息 ,未登录时传swanid
* @message
* @{
* @"swanid": @"传swanid",
* @"appKey": @"小程序的appKey",
* @"hostName": @"宿主的在小程序平台的标识名称"
* }
*/
+ (void)pushSMIdToHost:(NSDictionary *)message;
/**
* @brief 方便宿主server与小程序建立映射关系,在发起formid、直连支付、聚合支付成功后,向宿主发起回调,宿主如果实现该接口,需要将message传给自己的server
*
* @param message push信息 ,登录时传openid
* @message
* @{
* @"openid": @"传openid",
* @"appKey": @"小程序的appKey",
* @"hostName": @"宿主的在小程序平台的标识名称"
* }
*/
+ (void)pushOpenIdToHost:(NSDictionary *)message;
/**
* @brief 在调用openAppByUrl能力时,是否检查宿主info.plist中配置的LSApplicationQueriesSchemes
*
* @return NO:默认不检查(存在首次弹窗提示,点击取消按钮依然会跳转到app store),YES:检查(存在badcase:宿主没有配置支持的app的scheme,无法调起app)
*/
+ (BOOL)isVerifySupportAppScheme;
/**
* @brief private:百度系产品可用;远程调试是否发起鉴权请求;与登录账号有关,不使用百度账号登录的宿主,不需要鉴权请求,可以不实现这个接口,直接鉴权成功;使用百度账号的宿主方要使用远程调试功能,必须强制实现鉴权请求
* @return BOOL 是否发起鉴权请求,默认不发起鉴权请求,直接鉴权成功
*/
+ (BOOL)isOpenRemoteDebugAuthorizeRequest;
/**
* @brief 宿主启动添加延时操作
* @param delayBlock 延时操作block
* @param processName block标记符
* @param mainThread 是否在主线程运行
*/
+ (void)delayLaunchBusiness:(void (^)(void))delayBlock processName:(NSString *)processName mainThread:(BOOL)mainThread;
/**
* @brief 向ufo端口直接发起日志上传,不经过h5页面
*
* @param params 上传的ufo参数
*/
+ (void)uploadLocalLogWithParams:(NSMutableDictionary *)params
success:(void(^)(void))successBlock
failure:(void(^)(NSString *errorDescription))failureBlock;
/// @brief 设备静态评分,0.0~1.0,手百提供的默认值0.8,获取不到时返回 -1.0
+ (float)staticDeviceScore;
/// 设备动态评分(0.0~1.0,数据量不够时返回-1.0)
+ (float)dynamicDeviceScore;
/// 设备综合评分(0.0~1.0,默认值0.8)
+ (float)overallDeviceScore;
/**
* @brief 设备机型评价,宿主根据自身策略对当前设备进行评级(-1未知 1低端机 2中端机 3高端机)比如iphone6系列为低端机,iphone8系列为中端机,iphone11系列为高端机,或实现更加精准的设备评级策略
* @return 设备机型评级
*/
+ (NSString *)performanceLevel;
/// 跳转清理磁盘页面
/// @param appID 小程序 ID
+ (void)jumpToCleanDiskPage:(NSString *)appID;
/// 获取百度APP当前隐私授权的状态 0:用户尚未作出选择 1:用户已授权隐私协议 2:仅浏览模式
+ (NSString *)getCurrentPrivacyMode;
/// 获取手百启动策略染色ID
+ (NSString *)getLaunchDyeId;
@end