FinClip为企业提供小程序生态圈技术产品,开发者可在FinClip小程序开发帮助中心找到相关FinClip小程序指引

# 扩展 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涉及到的敏感权限

权限 相关接口、组件
摄像头 初始化的时候就会请求权限
录制音频 初始化的时候就会请求权限
© FinClip with ❤ , Since 2017