开发

2.27.0

一、功能描述

1、提升小程序启动用户体验;
2、提供小程序字体设置功能,保持与宿主APP字体大小同步;
3、精简MBProgressHUD三方开源库依赖,减少包体积;
4、增加百度系内部的扩展库,方便快速更新百度系私有能力,防止对接出错;
5、fix bug;

二、Changelist

本次改动重点:

  • 为百度系宿主提供内部扩展库(BBAMNPBDExtension),包含能力:thirdPartyLogin、privateGetUserInfo、getStoken、getBDUSS、getOpenBDUSS、queryQuickLoginInfo、quickLogin、setAccountAvatar、openUserProfile;
    1. 删除原有需要宿主手动集成的 BBASMAccountBridge 、BBASMAppExtensionBridge+PrivateAPI 、BBASMPlugin+PrivateLogin 类
    2. 修改 BBASMAccountHelper,删除原有 BBASMAccountLoginType 枚举
    3. 百度系宿主需要实现 BBASMBDAccountAdapterProtocol 协议;参考 Demo
  • 为宿主提供定制化的字体接口协议:BBASMFontAdapterProtocol;

add

1、【重要】BBASMBDAccountAdapterProtocol.h (私有账号协议,该协议只在百度及百度系宿主上使用,具体参考开源demo实现)

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
/// 获取bduss
+ (NSString *)getBduss;

/// @brief 获取stoken
/// @param tpl 标识业务线,用于 stoken 的获取
/// @param successBlock 获取成功的回调
/// @param failureBlock 获取失败的回调
+ (void)getStokenWithString:(NSString *)tpl
success:(void (^)(NSString *stoken))successBlock
failure:(void (^)(NSError *error))failureBlock;

/// @brief 获取openbduss
/// @param clientID clientID
/// @param tplList xcxtpl列表
/// @parma 完成回调 (error == nil && info != nil 成功)
+ (void)getOpenBdussWithClientID:(NSString *)clientID
tplList:(NSArray *)tplList
completion:(void (^)(id<BBASMAccountOpenBdussInfoProtocol> info, NSError *error))completion;

/// @brief 第三方登录,本地是否安装相关App
/// @parm loginType 登录类型
/// @return 是否安装
+ (BOOL)isAppInstalled:(BBASMAccountLoginType)loginType;

/// @brief 调用第三方登录
/// @param loginType 第三方登录类型 如:QQ,weibo,weixin
/// @param completionBlock completionBlock
/// @param viewController superVC
+ (void)thirdPartyLogin:(BBASMAccountLoginType)loginType
complete:(BBASMExternalSeviceCallback)completionBlock
superVC:(UIViewController *)viewController;

/// 一键登录
+ (void)quickLogin:(BBASMExternalSeviceCallback)completionBlock;

/// 查询是否支持一键登录
+ (void)queryQuickLoginInfo:(void(^)(id<BBASMAccountCheckOneKeyResultProtocol> result, NSError *error))completionBlock;

/// @brief 设置百度登录头像
/// @param portrait 待更新的头像
/// @param type 保存头像类型
/// @param completion 更新结果回调
+ (void)saveAccountPortrait:(UIImage *)portrait
portraitType:(BBASMAccountSetPortraitType)type
completion:(void(^)(BOOL success, NSString *errmsg))completion;


/// 姓名、身份证、人脸校验接口
/// @param realName 姓名
/// @param idNumber 身份证号
/// @param sourceVC 调起ViewController
/// @param appId appId
/// @param successBlock 成功回调
/// @param failureBlock 失败回调
+ (void)commonFaceVerifyWithRealName:(NSString *)realName
idNumber:(NSString *)idNumber
sourceVC:(UIViewController *)sourceVC
appId:(NSString *)appId
success:(void (^)(NSDictionary *))successBlock
failure:(void (^)(NSError *))failureBlock;

2、【可选】BBASMFontAdapterProtocol.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/// @brief 当前协议:管理宿主app中的字体,可联动宿主与小程序之间字体设置
@optional
/// @brief 宿主方可设置自己的字体集,包括字体等级、字体百分比
/// @return NSDictionary 数据结构,举例:{@"1":@"84%"(小), @"2":@"100%"(中), @"3":@"110%"(大), @"4":@"121%"(特大)}
+ (nullable NSDictionary *)hostFontLevels;

/// @brief 设置宿主方的默认字体等级
/// @return NSString 返回宿主默认字体等级
+ (nullable NSString *)hostDefaultFontLevel;

/// @brief 获取当前宿主方的字体等级
/// @return NSString 返回当前宿主方设置的字体等级
+ (nullable NSString *)hostCurrentFontLevel;

/// @brief 设置宿主方的字体等级
/// @param fontLevel 在小程序的菜单栏中修改字体等级,通知宿主方更新字体,等级范围对应“+ (NSDictionary *)hostFontLevels”接口中的值
+ (void)setHostFontLevel:(NSString *)fontLevel;

delete

1、【重要】BBASMNavigatorAdapterProtocol.h

1
2
3
/// 返回小程序根导航控制器(该方法已删除,SDK内部自动获取导航栈,宿主无需再实现)
+ (UINavigationController *)rootNavigationController;

2、【可选】BBASMPlatformAdapterProtocol.h

1
2
3
4
5
6
/// 获取用户字体大小,值为:1(小)、2(中)、3(大)、4(特大)
+ (NSString *)globalFontSizeLevel;

/// 设置用户字体大小
/// @param fontSizeLevel 字体大小级别,值为:1(小)、2(中)、3(大)、4(特大)
+ (void)setGlobalFontSizeLevel:(NSString *)fontSizeLevel;