download method

void download({
  1. required String urlPath,
  2. required dynamic filename,
  3. bool isNeedLoading = true,
  4. bool isLoadingCancelable = false,
  5. String? loadingTxt,
  6. Map<String, dynamic>? params,
  7. Map<String, dynamic>? body,
  8. Options? options,
  9. CancelToken? cancelToken,
  10. OnSuccess<File>? onSuccess,
  11. ProgressCallback? onProgress,
  12. OnFailed? onFailed,
})

下载文件

Implementation

void download({
  required String urlPath,
  required filename,
  bool isNeedLoading = true,
  bool isLoadingCancelable = false,
  String? loadingTxt,
  Map<String, dynamic>? params,
  Map<String, dynamic>? body,
  Options? options,
  CancelToken? cancelToken,
  OnSuccess<File>? onSuccess,
  ProgressCallback? onProgress,
  OnFailed? onFailed,
}) async {
  cancelToken = cancelToken ?? CancelToken();
  _downloadCancelTokens.add(cancelToken);

  if (isNeedLoading) {
    showLoading(loadingTxt: loadingTxt, cancelable: isLoadingCancelable);
  }

  HttpManager.getInstance().download(
      urlPath: urlPath,
      filename: filename,
      params: params,
      body: body,
      options: options,
      cancelToken: cancelToken,
      onProgress: (progress, total) {
        if (onProgress != null && !isFinishing()) {
          onProgress(progress, total);
        }
      },
      onSuccess: (file) {
        if (!isFinishing()) {
          if (isNeedLoading) {
            dismissLoading();
          }

          if (onSuccess != null) {
            onSuccess(file);
          }
        }
      },
      onFailed: (e) {
        if (!isFinishing()) {
          if (isNeedLoading) {
            dismissLoading();
          }

          if (onFailed != null) {
            onFailed(e);
          }
        }
      });
}