Я работаю над сайтом, который обслуживает PDF-файлы (созданные на лету) для просмотра и загрузки пользователем.Пользователь должен сохранить их, подписать их (используя любое стороннее приложение PDF), а затем загрузить их. По этому конкретному вопросу мы сосредоточены на передаче PDF из Chrome на iOS стороннему приложению PDF.
На незащищенном общедоступном веб-сайте, который просматривает PDF-файл по общедоступной ссылкетакие как эта форма IRS работает нормально.Вы можете просмотреть его, затем нажать «Открыть в ...» в правом нижнем углу и выбрать другое приложение.Другое приложение получит URL-адрес PDF-файла и откроет его.
Однако на защищенном веб-сайте передача обслуживания происходит неправильно.После нажатия «Открыть в ...» в правом нижнем углу документа PDF и выбора стороннего приложения PDF, другое приложение получит URL-адрес, но не файлы cookie, необходимые для поддержания состояния сеанса.Поэтому, когда он загружает PDF, он получает страницу входа на сайт.Разные приложения обрабатывают это по-разному, но, например, Google Drive сохранит страницу входа в систему как поврежденный файл PDF. Обратите внимание, что в Safari это работает нормально, проблема связана с iOS Chrome.
Вместо этого я попытался сделать так, чтобы браузер Chrome на iOS загружал PDF как двоичный объект,затем создайте URL-адрес данных и отобразите PDF, используя это:
<a id="myLink">Click here to test PDF data url</a>
<script>
$('#myLink').click(function() {
var xhr = new XMLHttpRequest();
xhr.open('GET', '/f1099msc.pdf');
xhr.responseType = 'arraybuffer';
xhr.onload = function(e) {
if (this.status == 200) {
var blob = new Blob([this.response], { type: 'application/pdf' });
var reader = new FileReader();
reader.onloadend = function() {
window.open(reader.result);
};
reader.readAsDataURL(blob);
}
};
xhr.send();
return false;
});
</script>
Этот подход работает отлично и успешно отображает PDF.Однако нажатие кнопки «Открыть в ...» в правом нижнем углу для передачи PDF другому приложению не работает .Нажатие на это не отвечает.Я предполагаю, что это из-за большого размера URL-адреса данных и того, что он не поддерживается для передачи другому приложению.
Есть мысли?Как я могу использовать функцию «Открыть в» в iOS Chrome на iOS с PDF за защищенным веб-сайтом или с большим URL-адресом данных?
Вот пример страницы, которая будет загружать PDF как данныеurl. Работает для отображения PDF только на Chrome iOS.Другие браузеры не являются поклонниками этого метода.