开发

宿主下载中心下载文件说明

1 简介

  • 接口类: ISwanAppHostDownloadManager
  • 依赖模块: deps.business.swan.core
  • 默认实现: DefaultSwanAppHostDownloadManager
  • 是否必须实现:
  • 可选择性依赖的实现:

注:用于小程序开发者调用宿主的文件下载管理器,下载文件。

2 示例实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* 小程序下载文件到宿主下载中心宿主实现类
*/

/**
* 示例实现
*
* 小程序下载文件到宿主下载中心宿主实现类
*/
@Service // 必要 pyramid IoC 注解,用于依赖注入该实现类
@Singleton // 可选 pyramid IoC 注解,建议宿主使用单例模式实现该能力
public class SwanAppHostDownloadManager implements ISwanAppHostDownloadManager {

@Override
public void downloadToHost(String url, String fileName, JSONObject header, IDownloadCallBack callback) {
// 调用宿主的下载中心,下载文件,通过callback回调下载的taskId等字段信息
}

@Override
public void queryFileInfo(String taskID, IDownloadCallBack callback) {
// 调用宿主的下载中心,通过taskId,查询下载状态,通过callback回调下载状态字段信息
}

@Override
public void openHostDownloadCenter() {
// 打开宿主下载中心
}

@Override
public void openFile(Activity activity, String taskID, final IDownloadCallBack callback) {
// 文件预览/打开文件
}
}

3 主要方法及参数参考

3.1 ISwanAppHostDownloadManager

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public interface ISwanAppHostDownloadManager {
/**
* 下载文件到宿主下载中心
* @param url 下载链接
* @param fileName 下载文件名
* @param header
* @param callback {@link IDownloadCallBack} 宿主回调,错误码+回调信息。
* 回调信息JSONObject格式:{"taskID":"..."}。 taskID是下载文件的唯一标识,返回给开发者,可用来查询下载状态、打开下载文件
*/
void downloadToHost(String url, String fileName, JSONObject header, IDownloadCallBack callback);

/**
* 查询下载文件信息,返回信息:下载文件名、下载文件大小、下载任务状态、下载任务开始时间、下载任务完成时间
*
* @param taskID 下载文件的唯一标识, downloadToHost中的返回。
* @param callback {@link IDownloadCallBack} 宿主回调,错误码+回调信息。
* 回调信息JSONObject格式:{"name"":"...", "size":"...", "status":"...", "createTime":"...", "completeTime":"..."};
* 回调信息JSONObject字段定义:
* - name:String型,下载文件名称
* - size:Number型,字节数,下载文件大小
* - status:String型,下载任务状态;取值为:"Waiting"、"Running"、"Suspend"、"Failed"、"Finished"
* - createTime:Number型,秒级时间戳,下载任务创建时间(UNIX 时间戳)
* - completeTime:Number型,秒级时间,下载任务完成时间,未完成的任务返回-1(UNIX 时间戳)
*/
void queryFileInfo(String taskID, IDownloadCallBack callback);

/**
* 打开宿主下载中心
*/
void openHostDownloadCenter();

/**
* 文件预览/打开文件
*
* @param activity 小程序activity
* @param taskID 下载文件的唯一标识, downloadToHost中的返回。
* @param callback {@link IDownloadCallBack} 宿主回调,错误码+回调信息。 回调信息可为空。
*/
void openFile(Activity activity, String taskID, IDownloadCallBack callback);
}

3.2 IDownloadCallBack

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
* 下载回调
*/
public interface IDownloadCallBack {

/**
* 宿主下载回调
*
* @param errCode 错误码,定义如下:
* 0:ok
* 1001: 透传宿主返回的错误信息
* 1002: taskID不存在
* @param callback {@link IDownloadCallBack} 宿主回调信息
*/
void callBack(int errCode, JSONObject data);
}