Я разработал приложение Angular 2 с бэкэндом Node.js. Я использую AWS-SDK для хранения файлов из приложения.
В приложении есть функция, с помощью которой пользователь может загрузить файл PDF, который был загружен в приложение (и сохранен на s3). По сути, приложение запрашивает сигнурл у s3 для конкретного объекта, как в блоке кода ниже.
var params = {
Bucket: projectid,
Key: docName,
VersionId: versionid,
ResponseContentDisposition: 'attachment; filename ="' + docName+ '_' + versionid + '.pdf"'
};
var url = {
link: s3.getSignedUrl('getObject', params)
}
res.status(200).send(url);
Этот URL-адрес возвращается во внешний интерфейс, а затем angular открывает подписанный URL-адрес в новом окне браузера, как показано в строке кода ниже.
window.open(url.link.toString());
Это прекрасно работает на настольных компьютерах и телефонах Android.
Когда я пытаюсь открыть его на iPhone, он открывает новую вкладку, показывает значок файла и затем говорит «загрузка не удалась». Однако ссылка в браузере верна и будет работать на любом другом устройстве, как указано.
Мне нужно, чтобы это работало на всех устройствах. Может ли кто-нибудь предложить другой способ загрузки файла через угловой интерфейс, который подходит для iPhone?