diff --git a/src/lib/download-blob.js b/src/lib/download-blob.js index 4f04db3503895cd3a17739b17c8fa383d42571d1..dfd971079118e5625a8bf9ddc1a595c9c9d57dc7 100644 --- a/src/lib/download-blob.js +++ b/src/lib/download-blob.js @@ -8,11 +8,23 @@ export default (filename, blob) => { return; } - const url = window.URL.createObjectURL(blob); - downloadLink.href = url; - downloadLink.download = filename; - downloadLink.type = blob.type; - downloadLink.click(); - window.URL.revokeObjectURL(url); - document.body.removeChild(downloadLink); + if ('download' in HTMLAnchorElement.prototype) { + const url = window.URL.createObjectURL(blob); + downloadLink.href = url; + downloadLink.download = filename; + downloadLink.type = blob.type; + downloadLink.click(); + document.body.removeChild(downloadLink); + window.URL.revokeObjectURL(url); + } else { + // iOS Safari, open a new page and set href to data-uri + let popup = window.open('', '_blank'); + const reader = new FileReader(); + reader.onloadend = function () { + popup.location.href = reader.result; + popup = null; + }; + reader.readAsDataURL(blob); + } + };