我正在尝试使用https://stackoverflow.com/a/29702251/9885144之后建模的代码来执行HttpRequest,从返回的blob生成下载链接,然后自动下载(所有单击按钮后)。这是单击按钮时运行的函数:( Converter.toDocx()
函数以我需要的格式运行HttpRequest.postFormData()
并返回未来。)
getDocx(String qStr, String aStr) {
String totalString = qStr + aStr;
Converter.toDocx(convertURL, totalString).then((HttpRequest req) {
String contentType = req.getResponseHeader("content-type");
print(contentType);
String filename = "download.docx";
AnchorElement downloadLink =
new AnchorElement(href: Url.createObjectUrlFromBlob(req.response));
downloadLink.rel = contentType;
downloadLink.download = filename;
var event = new MouseEvent("click", view: window, cancelable: false);
downloadLink.dispatchEvent(event);
});
}
使用webdev serve
时,它可以正常使用(在Chrome,Firefox和Edge上)。使用webdev build --no-release -o build:web
部署在远程服务器上时,它也可以正常工作。但是如果我放弃--no-release
选项,它就不起作用,所以我假设dart2js处理这个与dartdevc的关系有所不同。我打算添加一个弹出窗口,其中“如果不下载则点击此处”链接作为解决方法,但有更好的选择还是这是一个dart2js错误?