Javascript загрузить изображение как blob в Chrome и Firefox на iOS - PullRequest
0 голосов
/ 17 июня 2020

Я хочу загрузить картинку (тип файла jpeg) с Chrome или Firefox на iOS.

Этот код работает с Safari и всеми навигаторами на рабочем столе, но не с Chrome и Firefox на iPad и iPhone.

Chrome и Firefox на iPhone / pad открывают новое окно с изображением с URL-адресом «blob: https // path_of_pi c. "

function downloadResource(url, filename) {
  if (!filename) filename = url.split('\\').pop().split('/').pop();
  fetch(url, {
    headers: new Headers({
      'Origin': location.origin
    }),
    mode: 'cors'
  })
    .then(response => response.blob())
    .then(blob => {
      let blobUrl = window.URL.createObjectURL(blob);
      forceDownload(blobUrl, filename);
    })
    .catch(e => console.error(e));
}

function forceDownload(blob, filename) {
  var a = document.createElement('a');
  a.download = filename;
  a.href = blob;
  document.body.appendChild(a);
  a.click();
  a.remove();
}

Я вызываю функцию downloadResource с атрибутом onClick в элементе React

...