# 扩展SDK
扩展SDK 是对核心SDK的补充,所以要使用扩展SDK,也必须依赖核心SDK。 为了保证 SDK 的安全稳定性,将需要权限的API尽可能放到扩展SDK,FinClip 将 SDK 拆分为核心 SDK 与扩展 SDK,后者是前者的补充,因此使用扩展 SDK 也必须依赖核心 SDK。
在扩展 SDK 中,主要包含的功能见 ## 2 各扩展SDK中小程序api概览
小节
获取扩展 SDK
您可登录 资源下载中心 (opens new window) 下载 iOS SDK 文件,扩展 SDK 也处于在所下载的压缩包中。
# 1 注册扩展API
扩展SDK中的API,需要注册,否则小程序中也无法调用扩展SDK中的API。
[[FATExtClient sharedClient] fat_prepareExtensionApis];
# 2 各扩展SDK中小程序api概览
一些涉及到权限的api,我们将其放到了扩展SDK里。
扩展SDK(FinAppletExt)中包含的小程序api如下:
api名称 | api描述信息 |
---|---|
chooseLocation | 选择位置。 |
getLocation | 获取位置信息。 |
openLocation | 使用地图查看位置 |
choosePoi | 打开POI列表选择位置 |
startRecord | 开始录音。 |
stopRecord | 停止录音。 |
RecorderManager | 录音管理器以及一些列api |
扩展SDK-WebRTC(FinAppletWebRTC):
api名称 | api描述信息 |
---|---|
webrtc-video组件 | 组件以及一系列的webrtc的api |
扩展SDK-BDMap(FinAppletBDMap):
api名称 | api描述信息 |
---|---|
Map组件 | 视图组件 |
MapContext | 一系列的api |
扩展SDK-GDMap(FinAppletGDMap):
api名称 | api描述信息 |
---|---|
Map组件 | 视图组件 |
MapContext | 一系列的api |
注意
1.如果集成了百度地图,并设置了使用百度地图,那么Map组件以及Map的api会使用百度地图实现。 2.如果集成了高德地图,并设置了使用高德地图,那么Map组件以及Map的api会使用高德地图实现。 3.如果既没有集成百度地图也没有集成高德地图,也未设置,那么Map组件以及Map的api会使用系统自带的地图实现。 所以,关于Map组件和相关api,只需要在以上三种方案选一个即可。
扩展SDK-BLE(FinAppletBLE):
api名称 | api描述信息 |
---|---|
蓝牙-通用 | 一系列的api |
蓝牙-低功耗中心设备 | 一系列的api |
蓝牙-低功耗外围设备 | 一系列的api |
蓝牙-信标 | 一系列的api |
扩展SDK-Contact(FinAppletContact)中包含的小程序api如下:
api名称 | api描述信息 |
---|---|
addPhoneContact | 添加手机通讯录联系人。 |
扩展SDK-ClipBoard(FinAppletClipBoard)中包含的小程序api如下:
api名称 | api描述信息 |
---|---|
setClipboardData | 添加剪贴板内容。 |
getClipboardData | 读取剪贴板内容。 |
最后,请注意: 由于 剪贴板 权限比较敏感,且api比较冷门。您也可以通过注册自定义api的方式添加剪贴板相关的两个api。
注入的源码如下:
// 注册setClipboardData
[[FATClient sharedClient] registerExtensionApi:@"setClipboardData" handler:^(FATAppletInfo *appletInfo, id param, FATExtensionApiCallback callback) {
NSString *data = param[@"data"];
if (!data) {
callback(FATExtensionCodeFailure, @{@"errMsg" : @"参数data为空"});
return;
}
[UIPasteboard generalPasteboard].string = data;
NSDictionary *result = @{@"data" : data};
callback(FATExtensionCodeSuccess, result);
}];
// 注册getClipboardData
[[FATClient sharedClient] registerExtensionApi:@"getClipboardData" handler:^(FATAppletInfo *appletInfo, id param, FATExtensionApiCallback callback) {
NSString *data = [UIPasteboard generalPasteboard].string;
NSDictionary *result = @{@"data" : data == nil ? @"" : data};
callback(FATExtensionCodeSuccess, result);
}];