功能描述
通过JS下载文件
支持格式
Json
请求参数:
字段 | 可选 | 类型及范围 | 说明 |
---|---|---|---|
taskId | 否 | string | 下载任务句柄,不传或null返回10001错误,为空,空格,错误入参返回10002错误 |
请求调用示例var taskid = taskidlist[index];
LightSDK.native.downloadFile({
taskId: taskid
},
data = >{
console.log(JSON.stringify(data));
});
返回字段示例//进度回调
{
"info": {
"error_code": "0",
"error_message": "success"
},
"data": {
"taskId":"BD2114453524",
"type":"progress",
"progress": 0,
"totalBytesWritten": 1023,
"totalBytesExpectedToWrite": 2995977
}
}
//任务结果回调
{
"info": {
"error_code": "0",
"error_message": "success"
},
"data": {
"taskId":"BD2114453524"
"type": "finish",
"result": "success",
"tempFilePath":"LightResource://tmp_xxxxxxx.pdf",
"statusCode":200,
"errorCode":0
}
}
//服务器响应头部回调
{
"info": {
"error_code": "0",
"error_message": "success"
},
"data": {
"taskId":"BD2114453524",
"type": "header",
"result": {
"Connection": "Keep-Alive",
"Content-Length": "264",
"Content-Type": "text/html; charset=UTF-8",
"Date": "Mon, 08 Jun 2020 06:40:12 GMT",
"Keep-Alive": "timeout=5, max=100",
"Server": "Apache/2.4.34 (Unix) PHP/7.1.23",
"X-Android-Received-Millis": "1591598416243",
"X-Android-Response-Source": "NETWORK 200",
"X-Android-Selected-Protocol": "http/1.1",
"X-Android-Sent-Millis": "1591598413215",
"X-Powered-By": "PHP/7.1.23"
}
}
}
返回值说明
字段名 | 字段类型 | 说明 |
---|---|---|
type | string | 当前回调类型,header表示服务器响应头消息,progress表示当前下载进度,finish表示该下载任务已结束 |
progress | number | 下载进度百分比 |
totalBytesWritten | number | 已下载的字节数 |
totalBytesExpectedToWrite | number | 文件的总字节数 |
tempFilePath | string | 临时文件路径,lightresource://tmp_协议,文件后缀为实际文件类型。没传入 filePath 指定文件存储路径时会返回 |
result | string | 下载任务的最后结果,除了success是下载成功的标志,其他均是各种错误信息 |
statusCode | number | 请求响应状态码,200表示请求成功,其他都为请求异常 |
errorCode | number | 异常错误码 |
errorCode | errorMsg | 说明 |
---|---|---|
0 | success | 成功 |
1 | cancel by user | 用户取消 |
2 | network disconnect | 网络断开 |
3 | timeout | 连接超时 |
4 | unknow error | 未知原生失败 |
7 | invalid url | url地址异常 |
10 | status error | 响应值异常 |
注意事项
1.需要在config.js文件中配置插件module.exports = {
plugins:{
"file":{}
}
}
2、若在下载过程中,调用file.downloadAbort接口取消下载任务,则iOS&Android的回调会返回finish状态,iOS:result值为已取消 Android:result值为cancel by user