Мышь событие для загрузки работает с dartdevc, но не dart2js - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь использовать код, смоделированный после https://stackoverflow.com/a/29702251/9885144, чтобы выполнить запрос HttpRequest, сгенерировать ссылку для загрузки из возвращенного большого двоичного объекта, а затем автоматически загрузить ее (все после нажатия кнопки).Вот функция, которая запускается при нажатии кнопки: (функция 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);
  });
}

Этоотлично работает (на Chrome, Firefox и Edge), когда я использую webdev serve.Он также отлично работает при развертывании на моем удаленном сервере с webdev build --no-release -o build:web.Но это не сработает, если я опущу опцию --no-release, поэтому я предполагаю, что что-то другое в том, как dart2js обрабатывает это по сравнению с dartdevc.Я планирую добавить всплывающее окно со ссылкой «щелкните здесь, если не загружается» в качестве обходного пути, но есть ли лучший вариант или это ошибка dart2js?

...