下载

最近更新时间:2024-10-15 14:36:01

我的收藏

简介

本文档提供关于文件下载的 API 概览以及 SDK 示例代码。

SDK API 参考

SDK 所有接口的具体参数与方法说明,请参见 SDK API 参考

下载

功能说明

该下载方法内部会自动进行下载到本地、暂停、续传、取消的逻辑。

开始下载

late SMHDownloadTask task;
task = await SMHApiTransferApis.download(
libraryId: 'libraryId',
// 空间 ID
spaceId: 'spaceId',
// 用户 ID
userId: 'userId',
// 远端文件路径
filePath: 'filePath',
// 本地路径
localPath: 'localPath',
userToken: 'userToken',
// 进度回调
onReceiveProgress: (count, total) {
// count 已上传的字节数
// total 总的字节数
},
// 完成回调
finishCalBack: (result, error) {

},
);

task.stateStream.stream.listen((event) {
任务状态监听
// SMHTaskState.waiting, 等待中
// SMHTaskState.processing, 进行中
// SMHTaskState.error, 任务错误
// SMHTaskState.pause, 任务暂停
// SMHTaskState.success, 成功
// SMHTaskState.canceled, 取消
});


暂停

task.pause()

继续(应用不进行重新启动)

task.resume()

取消

task.cancel()
说明:
若要实现 App 被 kill 之后再次打开继续下载,则需要业务端将本次下载任务对应的 libraryId、spaceId、localPath、filePath、userToken、userId 进行持久化,再次进入 App 时重新调用 SMHApiTransferApis.download 进行下载。
SDK 内部根据提供的本地下载路径找上一次下载的临时文件进行继续下载。