36 lines
888 B
Dart
36 lines
888 B
Dart
import 'package:dio/dio.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
class loadFileCancelRequest{
|
|
|
|
late Function progressCallback;
|
|
late Function successCallback;
|
|
|
|
CancelToken token = CancelToken();
|
|
|
|
load(String url, String path) async {
|
|
Dio dio = Dio();
|
|
await dio.download(url, path, cancelToken: token, onReceiveProgress: (received, total) {
|
|
if (total != -1) {
|
|
// 下载进度
|
|
progressCallback((received / total));
|
|
debugPrint("检查更新-下载进度:${(received / total)}");
|
|
}
|
|
}).then((onValue){
|
|
// 下载成功
|
|
successCallback();
|
|
});
|
|
}
|
|
|
|
cancel() {
|
|
token.cancel('取消请求');
|
|
}
|
|
|
|
setProgressCallbackListener(Function progressCallback){
|
|
this.progressCallback = progressCallback;
|
|
}
|
|
|
|
setSuccessCallbackListener(Function successCallback){
|
|
this.successCallback = successCallback;
|
|
}
|
|
} |