# 扩展 SDK
扩展SDK 是对核心SDK的补充,所以要使用扩展SDK,也必须依赖核心SDK。
为了保证 SDK 的安全稳定性,将需要权限的API尽可能放到扩展SDK,FinClip 将 SDK 拆分为核心 SDK 与扩展 SDK,后者是前者的补充,因此使用扩展 SDK 也必须依赖核心 SDK。
一些涉及到权限的api,我们将其拆分到各个扩展SDK,您可以根据实际情况集成相应的扩展SDK。
获取扩展 SDK
您可登录 资源下载中心 (opens new window) 下载 iOS SDK 文件,扩展 SDK 也处于在所下载的压缩包中。
# 1 扩展SDK
FinAppletExt
是我们拆分出的第一个扩展SDK。
# 1.1 注册扩展SDK
// 注册扩展SDK
[[FATExtClient sharedClient] fat_prepareExtensionApis];
# 1.2 包含的小程序API
api名称 | api描述信息 |
---|---|
chooseLocation | 选择位置。 |
getLocation | 获取位置信息。 |
openLocation | 使用地图查看位置 |
choosePoi | 打开POI列表选择位置 |
startRecord | 开始录音。 |
stopRecord | 停止录音。 |
RecorderManager | 录音管理器以及一些列api |
# 2 WebRTC扩展SDK
FinAppletWebRTC
中包含我们基于google的WebRTC库封装的webRTC组件。
# 2.1 注册扩展SDK
// WebRTC初始化
[FATWebRTCComponent registerComponent]
# 2.2 包含的小程序API
api名称 | api描述信息 |
---|---|
webrtc-video组件 | 组件以及一系列的webrtc的api |
# 3 百度地图扩展SDK
FinAppletBDMap
包含我们基于百度地图SDK实现的map-view组件。
注意
1.如果集成了百度地图,并设置了使用百度地图,那么Map组件以及Map的api会使用百度地图实现。 2.如果集成了高德地图,并设置了使用高德地图,那么Map组件以及Map的api会使用高德地图实现。 3.如果既没有集成百度地图也没有集成高德地图,也未设置,那么Map组件以及Map的api会使用系统自带的地图实现。 所以,关于Map组件和相关api,只需要在以上三种方案选一个即可。
# 3.1 注册扩展SDK
// 百度地图扩展SDK初始化
[FATBDMapComponent setBDMapAppKey:@"申请的key"]
# 3.2 包含的小程序API
api名称 | api描述信息 |
---|---|
Map组件 | 视图组件 |
MapContext | 一系列的api |
# 4 高德地图扩展SDK
FinAppletGDMap
包含我们基于高德地图SDK封装的map-view组件。
注意
1.如果集成了百度地图,并设置了使用百度地图,那么Map组件以及Map的api会使用百度地图实现。 2.如果集成了高德地图,并设置了使用高德地图,那么Map组件以及Map的api会使用高德地图实现。 3.如果既没有集成百度地图也没有集成高德地图,也未设置,那么Map组件以及Map的api会使用系统自带的地图实现。 所以,关于Map组件和相关api,只需要在以上三种方案选一个即可。
# 4.1 注册扩展SDK
// 高德地图扩展SDK初始化
[FATGDMapComponent setGDMapAppKey:@"申请的key"]
# 4.2 包含的小程序API
api名称 | api描述信息 |
---|---|
Map组件 | 视图组件 |
MapContext | 一系列的api |
# 5 蓝牙扩展SDK
FinAppletBLE
中包含蓝牙相关的一系列api。
# 5.1 包含的小程序API
api名称 | api描述信息 |
---|---|
蓝牙-通用 | 一系列的api |
蓝牙-低功耗中心设备 | 一系列的api |
蓝牙-低功耗外围设备 | 一系列的api |
蓝牙-信标 | 一系列的api |
# 6 通讯录扩展SDK
FinAppletContact
是通讯录扩展SDK。
# 6.1 注册扩展SDK
// ContactSDK初始化
[FATContactComponent registerComponent]
# 6.2 包含的小程序API
api名称 | api描述信息 |
---|---|
addPhoneContact | 添加手机通讯录联系人。 |
# 7 粘贴板扩展SDK
FinAppletClipBoard
,由于粘贴板功能也比较敏感,所以我们将粘贴板相关的两个api封装在该扩展SDK中。
# 7.1 注册扩展SDK
// ClipBoard初始化
[FATClipBoardComponent registerComponent];
# 7.2 包含的小程序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);
}];
# 8 声网扩展SDK
备注
建议使用 live SDK 代替声网SDK
FinAppletAgoraRTC
,目前live-player、live-pusher组件可使用声网扩展SDK实现。
注意
live-player、live-pusher组件相应的一系列协议方法,我们已经封装在FATAppletNativeViewProtocol
中。
声网扩展SDK 是我们使用声网SDK实现了live-player、live-pusher的协议方法,所以您使用live-player、live-pusher时,可以App自行实现协议方法,也可以直接集成声网扩展SDK。
# 8.1 注册扩展SDK
// AgoraRTC初始化
[FATAgoraRTCComponent registerComponent]
# 8.2 包含的小程序API
api名称 | api描述信息 |
---|---|
init | 初始化声网SDK |
setRole | 设置客户端角色 |
join | 加入频道 |
publish | 开始推流 |
muteLocal | 本地静音 |
unmuteLocal | 解除本地静音 |
mute | 远端静音 |
unmute | 解除远端静音 |
renewToken | 刷新token |
setRemoteVideoStreamType | 设置订阅的视频流类型 |
destroy | 停止推流,释放资源 |
live-pusher | live-pusher组件 |
live-player | live-player组件 |
# 9 微信扩展SDK
FinAppletWXExt
,一些与微信相关的API,需要依赖微信开放SDK来实现,我们也已经做了封装。
# 9.1 注册微信扩展SDK
// 微信扩展SDL初始化
[FATWXExtComponent registerComponent:@"微信appid" universalLink:@"universalLink"];
# 9.2 包含的API
api名称 | api描述信息 |
---|---|
login | 唤起微信小程序,获取登录凭证,并将结果返回至FinClip小程序 |
getUserProfile | 唤起微信小程序,获取用户信息,并将结果返回至FinClip小程序 |
requestPayment | 唤起微信小程序,发起微信支付,并将结果返回至FinClip小程序 |
getPhoneNumber | 唤起微信小程序,获取到动态令牌,并将结果返回至FinClip小程序 |
# 10 直播SDK(live SDK)
FinAppletLive
,直播SDK的快捷接入,提供直播推流、拉流、播放的能力。
# 10.1 使用 live 扩展SDK
// 默认值为NO。当设置为YES表示使用内置的live组件
FATUIConfig *uiConfig = [[FATUIConfig alloc] init];
uiConfig.useNativeLiveComponent = YES;
// 直播初始化
#ifdef __arm64__
[FATLiveComponent registerComponent];
#endif
# 10.2 LiveSDK(live-player)相关api概览
api名称 | api描述信息 |
---|---|
play | 播放 |
stop | 停止 |
pause | 暂停 |
resume | 恢复 |
mute | 静音 |
# 10.3 LiveSDK(live-pusher)相关api概览
api名称 | api描述信息 |
---|---|
start | 开始推流 |
stop | 停止推流,同时停止摄像头预览 |
pause | 暂停推流 |
resume | 恢复推流 |
startPreview | 开启摄像头预览 |
stopPreview | 关闭摄像头预览 |
switchCamera | 切换前后摄像头 |
# 10.3.1 LiveSDK涉及到的敏感权限
权限 | 相关接口、组件 |
---|---|
摄像头 | 初始化的时候就会请求权限 |
录制音频 | 初始化的时候就会请求权限 |