Возможно, я немного опоздал с ответом на этот вопрос, но столкнулся с той же проблемой при предварительном просмотре PDF-файла из URL-адреса большого двоичного объекта с использованием iframe в Safari.FileReader
сделал свое дело для меня.Из вашего кода вместо использования window.URL.createObjectURL(pdf)
прочитайте большой двоичный объект, который находится здесь, в формате pdf через FileReader
, как показано ниже:
const pdf = new Blob([new Uint8Array(arrayBuffer)], { type: 'application/pdf' })
const reader = new FileReader();
reader.onload = () => {
const url = reader.result; // Use this `url` in iframe src
};
reader.readAsDataURL(pdf);
Обратите внимание , что этот трюк сработал в Safariно может не работать в других браузерах, поэтому используйте URL-адрес blob для других браузеров и этот трюк для Safari.