开发

常见提供给外部的API

1.打开小程序

1
2
NSString *appUrl = @"swandemo://swan/appKey";
[Pyramid.bba_smManager openAppUrl:appUrl];

2.扫码打开小程序

1
2
3
4
// 长连地址:https://smartapp.baidu.com/mappconsole/api/packagescheme
// 短连地址:https://mbd.baidu.com/ma/s
NSString *codeUrl = @"https://mbd.baidu.com/ma/s";
[[Pyramid.bba_smManager sharedInstance] generateMNPLaunchDispatcherFromURL:codeUrl];

3.日志输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// info日志,写日志系统,同时写sconsolelog。(表示正常使用时的日志)
BBASM_INFO_LOG()

// Warning日志,写日志系统,同时写sconsolelog。(表示可能有问题,还没发生错误)
BBASM_WARNING_LOG()

// Error日志,写日志系统,同时写sconsolelog。(表示有问题并导致出错)
BBASM_ERROR_LOG()

// verbose日志,打印到控制台,不写入日志系统、sconsolelog。(表示所有可能的日志,默认级别)
BBASM_VERBOSE_LOG()

// debug日志,打印到控制台,不写入日志系统、sconsolelog。(表示所有合理的调试用日志
BBASM_DEBUG_LOG()

4.预下载小程序 (性能优化)

通过预下载小程序功能,能快速打开小程序,提升用户体验。

4.1 通过调起协议,预下载小程序

1
2
3
4
5
6
7
8
/// 通过调起协议,预下载小程序
/// scheme,小程序调起协议
/// callBack,小程序预下成功回调
+ (void)preDownloadAppPackageWithScheme:(NSString *)scheme
callBack:(void(^)(BOOL succeed))callBack;

/// 以百度app上的小程序调起协议为例,调用预下载接口
[Pyramid.bba_bba_MNP preDownloadAppPackageWithScheme:@"baiduboxapp://swanAPI/4fecoAqgCIUtzIyA4FAPgoyrc4oUc25c" callBack:^(BOOL succeed) {}];

4.2 通过appKey(appID),预下载小程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/// 通过appKey,预下载小程序
/// appIDs,NSArray,要预下载小程序的appkey
/// appTypeString,业务包类型,@"swan":小程序,@"swangame":小游戏
/// scene,小程序场景值(比百度APP作为参考),表示小程序从哪个入口下载,如果不知道场景值,默认:BBASMAppPreDownloadSceneDefault
/// callBack,小程序预下成功回调
+ (void)preDownloadAppPackageWithAppIDs:(NSArray *)appIDs
appTypeString:(NSString *)appTypeString
scene:(BBASMAppPreDownloadScene)scene
callBack:(nullable void(^)(BOOL succeed))callBack;

/// 调用预下载小程序接口
[Pyramid.bba_bba_MNP preDownloadAppPackageWithAppIDs:@"4fecoAqgCIUtzIyA4FAPgoyrc4oUc25c"
appTypeString:@"swan"
scene:BBASMAppPreDownloadSceneFeed
callBack:^(BOOL succeed) {}];

4.3 取消预下载小程序

1
2
3
4
5
6
/// 取消预下载小程序
/// appID,小程序的appKey
+ (void)cancelPreDownloadAppPackageWithAppID:(NSString *)appID

/// 调用取消预下载小程序
[Pyramid.bba_bba_MNP cancelPreDownloadAppPackageWithAppID:@"4fecoAqgCIUtzIyA4FAPgoyrc4oUc25c"];

4.4 判断是否已经下载小程序

1
2
3
4
5
6
/// 判断是否已经下载小程序
/// appID,小程序的appKey
+ (void)appHasPrefetchedWithAppID:(NSString *)appID

/// 调用判断是否已经下载小程序接口
[Pyramid.bba_bba_MNP appHasPrefetchedWithAppID:@"4fecoAqgCIUtzIyA4FAPgoyrc4oUc25c"];