downloadFile<T> method
下载文件,
url 下载路径的地址
savePath 保存路径的地址
onReceiveProgress 下载进度回调
Implementation
Future<T> downloadFile<T>(String url, savePath,
{Function(int progress, int total)? onReceiveProgress,
Options? options,
Map<String, dynamic>? queryParameters}) async {
var cancelToken = CancelToken();
try {
Response<dynamic> response = await _dio.download(url, savePath,
onReceiveProgress: onReceiveProgress,
cancelToken: cancelToken,
options: options,
queryParameters: queryParameters);
if (response.statusCode == RxDioConstants.networkStatus) {
Map<String, dynamic> data = json.decode(response.toString());
//对象数据类型
BaseBean bean = BaseBean<T>.fromJson(data);
if (bean.isSuccess()) {
/// 返回泛型Bean
return await bean.data as T;
} else {
return await Future.error(bean.message);
}
}
} catch (e) {
return Future.error(e);
} finally {
cancelToken.cancel();
}
return Future.error(e);
}