【软通动力】HarmonyOS三方件开发指南(11)——Updownfile 原创 精华
1. UpDownfile功能介绍
1.1. 功能介绍:
UpDownfile基于Okhttp为基础进行二次封装,是一款非常好用的文件上传下载框架,该框架功能强大,主要包含两方面功能:
(1).文件下载带进度展示
(A).单任务下载:分为带参数和不带参数,包括暂停下载、继续下载功能;
(B).多任务下载:分为带参数和不带参数,包括暂停下载、继续下载功能;
(2).文件上传带进度展示
(A). 单任务上传:分为带参数和不带参数,包括暂停上传、继续上传功能;
(B). 多任务上传:分为带参数和不带参数,包括暂停上传、继续上传功能;
运行截图如下:
1.2. 使用要求
(1) .在config.json进行网络以及文件读写权限操作
(2) .在实际使用地方进行动态权限申请
1.3. 使用实例介绍UI
2. UpdownFile使用方法
2.1. 新建工程,增加组件Har包依赖
在应用模块中添加HAR,只需要将updownfile.har复制到entry\libs目录下即可(由于build.gradle中已经依赖的libs目录下的*.har,因此不需要再做修改)。
2.2. 断点续传使用方法介绍
(1). 在AbilitySlice里实现ProgressResponseBody.ProgressListener接口,重写
(2).progressBar设置进度更新的方法如下
2.3. 初始化下载方法及存储路径
2.4. 具体使用方法
(1). 下载:
(2). 暂停,开启拦截器
(3). 继续下载,传入开始下载的位置
2.5. 文件上传使用方法
(1). 单文件上传,无需参数
(2). 单文件上传,需要参数
(3). 多文件上传, List集合形式
(4). 多文件上传, Map形式
3. UpdownFile开发实现
3.1. 新建一个Module
新建一个Module,类型选择HarmonyOS Library,模块名为updownfile,如图
3.2. 新建一个OKhttpUtil类
新建一个OKhttpUtil类,将下载上传方法进行封装
3.3. 新建一个RequestUtil类
RequestUtil实现OkhttpUtil的各种方法
3.4. 新建CallBackUti实现进度更新监听
通过EventHandler发送消息对下载进度实现回调监听,在主线程进行UI更新操作。
3.5. 多任务下载使用方法
(1).多任务下载原理
创建线程池,点击单个下载任务创建子线程并将子线程加入线程池进行管理,将文件信息及更新进度信息存入model进行单独管理,在使用的AblitySlice实现ProgressResponseBody.ProgressListener接口进行进度监听。
(2). 应用层面使用方法
(A). 引入har包,引入方法这里不做介绍
(B). 在AblitySlice实现ProgressResponseBody.ProgressListener接口,并重写接口的两个方法
(C) .为ListContainer创建适配器构造数据,实例如下:
(D). 在ListContainer的适配器的构造方法中进行线程池初始化
(E).点击开始下载,创建子线程,并将子线程加入线程池进行管理
(F).暂停下载方法使用如下:
(G). 继续下载方法使用如下:
(H). 特别注意,点击暂停时,必须将当前下载的节点进行存储,因为该节点在重新下载时会当作 下载的起始位置。存储方法如下
3.6. 编译HAR包
利用Gradle可以将HarmonyOS Library库模块构建为HAR,构建HAR的方法如下:
在Gradle构建任务中,HAR包括生产和测试版本,双击PackageDebugHar或PackageReleaseHar任务,构建Debug或Release类型的HAR。
待构建任务完成后,可以在工程目录中的updownfile> bulid > outputs > har目录中,获取生成的HAR。
项目源代码地址:https://github.com/isoftstone-dev/FileDownload_HarmonyOS
欢迎交流:HWIS-HOS@isoftstone.com
优秀的讲解,为分享的大佬点赞。
感谢,欢迎常来沟通学习
好文👍👍👍
感谢张老师