【发布时间】:2021-03-20 04:26:21
【问题描述】:
我在 Flutter 中开发了一个 Web 应用程序,我想从文件系统加载一个文件。为此,我使用以下代码:
static Future<Uint8List> chooseImage(dynamic parent, dynamic provider) async {
Uint8List uploadedImage;
final completer = Completer<List<String>>();
InputElement uploadInput = FileUploadInputElement();
uploadInput.accept = 'image/*';
uploadInput.click();
uploadInput.addEventListener('change', (e) async {
final files = uploadInput.files;
Iterable<Future<String>> resultsFutures = files.map((file) {
final reader = FileReader();
reader.readAsDataUrl(file);
reader.onError.listen((error) => completer.completeError(error));
return reader.onLoad.first.then((_) async {
String result = reader.result as String;
uploadedImage = base64Decode(result.substring(22, result.length));
return reader.result as String;
});
});
final results = await Future.wait(resultsFutures);
completer.complete(results);
});
document.body.append(uploadInput);
final List<String> images = await completer.future;
parent.setState(() {
parent.pickedImage = uploadedImage;
});
uploadInput.remove();
return uploadedImage;
}
在我的应用程序中,当用户在此弹出窗口中按下“取消”按钮时,我需要处理这种情况:
我添加了以下监听器:onFocus、onSuspen、onSubmit、onEnded、onAbort,但是当按下取消按钮时,这些事件都不会被触发。
如何处理弹出取消?
【问题讨论】:
-
没有处理取消事件的选项
-
一般情况下没有选项可以处理取消事件,或者只针对 dart:html 中的 InputElement?
-
是的,没有一般的取消事件。可以找到很多替代选项here
标签: flutter dart event-handling flutter-web dart-html