Я настраиваю прогрессивное веб-приложение с помощью PWA Builder. Мне нужно загрузить pdf, как только я загружаю прогрессивное веб-приложение на локальное устройство после отключения Интернета, чем я проверяю еще раз, щелкните ссылку pdf для загрузки. Я пробовал, но файл PDF не загружается. Пожалуйста, предложите.
Я не знаю pwabuilder, но какую установку ServiceWorker вы выбрали? Похоже, вам нужна «сеть с первым кэшированием», чтобы все ваши файлы можно было кэшировать, даже если они никогда не посещались. Но «Автономная копия страниц» должна была кэшировать ваш файл, если вы действительно загрузили его перед отключением. Другие, не уверен, что «Автономная страница» не будет, кроме случаев, когда вы включили файл pdf как dataURI внутри offline.html. В любом случае, не могли бы вы показать фактический код, который вы запускаете в ServiceWorker, и как делается исходный запрос к этому pdf-файлу.
Сервисы получают из копии pwabuilder.com/serviceworker( Не в сети со страницей Backup offline) ---------------------------------------- -------------------- -------------------- ------ -------------- - Используется в файле "pwabuilder-sw.js": - - var precacheFiles = ['index.html', 'contact.html', 'about .html ',' pdf / dummy.pdf ',' img / портфолио / cake.png ',' videos / small-test.mp4 '];



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Прежде всего, я думаю, что для того, чтобы скачать PDF-файл, у вас должно быть подключение к Интернету. Затем преобразуйте его в base64 и сохраните в localStorage. Как только пользователь снова откроет ваше веб-приложение, проверьте, открывает ли он тот же PDF-файл, что и мы, и покажите его из localStorage.
Обновлено: я не думаю, что вы не могли кешировать в сервис-воркере. Это только для предопределенных данных.
Есть еще два варианта: - websql - indexsql - pouchsql
https://www.sitepoint.com/offline-web-apps-service-workers-pouchdb/
Никогда не храните двоичные файлы в localStorage. Этот API не предназначен для этого. Если вы действительно хотите хранить двоичные файлы, используйте IndexedDB. Теперь OP создает PWA, то есть они используют ServiceWorkers и имеют доступ к кешу.
Я не сказал хранить двоичный файл. Я сказал хранить строку base64.
Получите эту строку base64, чтобы преобразовать PDF в отображение.
... Вы этого не понимаете. localStorage API предназначен для хранения небольшого количества данных (например, json) и обычно ограничен максимум 10 МБ для всего домена. Храните всего несколько больших PDF-файлов, и вы облажались. Не только это, но и localStorage фактически извлекается синхронно (т.е. блокируется отрисовка) каждый раз, когда ваши пользователи загружают вашу страницу. Все это повторяю: никогда не используйте localStorage для хранения двоичных файлов. Вместо этого используйте IndexedDB, который может хранить значительно больше данных, может хранить двоичные данные как есть (нет необходимости в кодировке base64 на 34% больше), является асинхронным и загружает ресурс только по запросу.
И еще раз. Речь идет о реализации прогрессивного веб-приложения, имеющего доступ к ServiceWorkers и кешу. то есть ServiceWorker должен кэшировать свои ресурсы.
Ах, я это пропустил.
Скачать файл без интернета? если он не размещен локально на устройстве или в сети, вы просите волшебства?