下载文件
使用说明
| 客户端 |
Android |
iOS |
| 支持说明 |
支持 |
支持 |
import { MDownloader } from "@yl/super-jssdk";
MDownloader.downloadFile(optional)
参数说明
| 参数 |
类型 |
必填 |
作用 |
| optional |
Object |
是 |
必填参数 |
optional
| 参数 |
类型 |
必填 |
作用 |
| fileInfos |
Array |
是 |
文件URL地址以及保存路径列表。格式[{"url":"http://www.baidu.com/a.jpg","path":"/a/b/c.jpg"}]path必须是绝对路径,支持file://前缀 |
| start(result) |
function |
否 |
文件列表下载开始回调用,result为json对象,格式:{"queueId":"下载队列id号"} |
| progress(fileInfo,done,total) |
function |
否 |
文件下载完成进度回调,每下载完一个调用,如果下载的是单个文件,则整个文件下载完成后回调一次。done:完成的个数,total:总个数,其中fileInfo为JSON对象,如{"url":"http://www.baidu.com/a.jpg","path":"/a/b/c.jpg", "$sdk_download_status": true} |
| singleFileProgress(fileInfo,done,total) |
function |
否 |
下载单个文件时的进度回调,若下载的是多个文件不会触发此回调函数。done:下载的大小,total:总数,其中fileInfo为JSON对象,如{"url":"http://www.baidu.com/a.jpg","path":"/a/b/c.jpg", "$sdk_download_status": true} |
| options |
Object |
否 |
插件选填参数 |
fileInfos
| 参数 |
类型 |
必填 |
作用 |
| url |
string |
是 |
下载的文件路径 |
| path |
string |
是 |
文件存储路径(绝对路径) |
options
| 参数 |
类型 |
必填 |
作用 |
| mode |
int |
否 |
默认值为0;mode=0,某个文件下载失败,继续下载剩余的;mode=1,某个文件下载失败,不继续下载剩余的 |
| httpMethod |
int |
否 |
设置http请求方式,1:GET 2:POST 默认GET |
| httpHeaderFields |
json |
否 |
http请求头设置 |
| httpBodyFields |
json |
否 |
http实体设置 |
返回说明
| 参数 |
类型 |
作用 |
| resolve(fileInfos) |
Function |
文件列表下载完成回调,fileInfos 结构如下 |
| reject(err) |
Function |
下载某个文件失败回调,err为详细错误信息,是一个json对象,包含 fileInfo 信息:载失败文件信息 例如:{"errCode":-1,"errMsg":"出错啦", fileInfo: {url: 'http://www.test.com'}} |
fileInfos
[
{
url:"http://oss-cn-shenzhen.aliyuncs.com/yunshequ/app-center/modules/ncov.png",
path: "file:///storage/emulated/0/Android/data/com.mysoft.smartengineertest/images/workbench-configs/cjap-icon/ncov.png",
$sdk_download_status: true,
error: 'xxx'
}
]
注意事项
1、本地已存在,则不触发下载
2、文件的path是绝对地址,最好带文件扩展名
代码示例
const fileInfos = [
{
url:"http://oss-cn-shenzhen.aliyuncs.com/yunshequ/app-center/modules/ncov.png",
path: "file:///storage/emulated/0/Android/data/com.mysoft.smartengineertest/images/workbench-configs/cjap-icon/ncov.png"
}
];
MDownloader.downloadFile({fileInfos})
.then((res) => {
console.log("success", res);
})
.catch((err) => {
console.log("fail", err);
});