169 похожих чатов

Парни! подскажите, мб кто знает в чем дело. Создаю ПДФ

jsPDF, а затем пытаюсь сделать его скачивание. На десктопе все работает ожидаемо хорошо. А для мобилы делаю прям костыли, но тоже не очень работает.

И на данный момент лучший вариант на мобильнике:

window.URL = window.URL || window.webkitURL
const blob = PDF.output('blob')
const a = this.r2.createElement('a')
this.r2.appendChild(document.body, a)
a.style.display = 'none'
a.target = '_blank'
a.download = 'file.pdf'
a.text = 'Download PDF'

if (window.navigator.msSaveOrOpenBlob) { //IE 11+
window.navigator.msSaveOrOpenBlob(blob, "my.pdf");
} else if (this.navigator.userAgent.match('FxiOS')) { //FF iOS
alert("Cannot display on FF iOS");
} else if (this.navigator.userAgent.match('CriOS')) { //Chrome iOS
const reader = new FileReader()
reader.onloadend = () => {
a.href = reader.result
a.click()
}
reader.readAsDataURL(blob)
} else if (this.navigator.userAgent.match(/iPad/i) || this.navigator.userAgent.match(/iPhone/i)) { //Safari & Opera iOS
window.location.href = window.URL.createObjectURL(blob)
}


и все бы устраивало, но почему-то хром игнорирует имя файла и скачивает просто document без разрешения, неоткрываемый соответственно

в сафари просто открывается пдф и им можно поделиться, но обязательно выбрать в настройках пдф иначе просто пошлет ссылку вида blob:…


Как победить мобильные браузеры в такой ситуации?)

4 ответов

13 просмотров

filesaver не помогает?

Ivan-Cherniakøv Автор вопроса
Smooth Operator
filesaver не помогает?

впервые слышу, библиотека?https://www.npmjs.com/package/file-saver

Ivan-Cherniakøv Автор вопроса
Smooth Operator
ага

Спасибо, тестану!

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта