From 28cda95346a1f5c8071feb9ed50b8255c6120c51 Mon Sep 17 00:00:00 2001 From: Paul Kaplan <pkaplan@media.mit.edu> Date: Thu, 15 Aug 2019 14:10:42 -0400 Subject: [PATCH] Allow some kind of downloading to work on Safari --- src/lib/download-blob.js | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/lib/download-blob.js b/src/lib/download-blob.js index 4f04db350..dfd971079 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); + } + }; -- GitLab