Рекурсивное копирование каталога из Интернета в файловую систему устройства в Кордове

#javascript #cordova #xmlhttprequest #cordova-plugins

#javascript #кордова #xmlhttprequest запрос #cordova-плагины

Вопрос:

Я хочу скопировать все файлы в веб-каталоге на веб-сервере, а в идеале в подкаталогах его компонентов, в локальное хранилище устройств для Android и iOS в Cordova с использованием javascript и / или плагинов cordova.

Вариант использования заключается в копировании всего (небольшого) веб-приложения / страницы с удаленного веб-сервера (которым мы управляем и где мы разместили контент) в локальное хранилище на устройстве. Это будет использовано для формы отправки горячего кода для приложения cordova.

Копировать файлы можно с помощью cordova-plugin-file-transfer:

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/

или более соответствующим стандартам способом, используя XMLHttpRequest (XHR):

https://cordova.apache.org/blog/2017/10/18/from-filetransfer-to-xhr2.html

Как скопировать все дерево каталогов, перезаписав существующее, в хранилище устройства.

Предпочтительный: метод для включения обработки ошибок на случай, если что-то препятствует полной копии, что может привести к частичной копии или поврежденному каталогу.

Существует ли API или комбинация API, которые уже делают это? Если нет, есть ли у кого-нибудь или знает ли он код для достижения этой цели?

Спасибо!

Ответ №1:

Вы можете посмотреть на гидратацию phonegap для горячего нажатия :

http://docs.phonegap.com/phonegap-build/tools/hydration/

Я думаю, что это может подойти для ваших нужд.

Однако будьте очень осторожны с hot code push, потому что Apple это не очень нравится, и это скорее противоречит их рекомендациям.

Комментарии:

1. Спасибо, но это проект cordova, а не проект phonegap. Знаете ли вы хорошую библиотеку, которая использует горячий код для cordova? Я не смог найти ни одного. Я нашел пару старых / устаревших, но ничего текущего.

2. У меня была та же проблема, что и у вас, много мертвых библиотек / плагинов, и мне пришлось перейти на phonegap. Так что я вам не очень помогу, извините….

3. Спасибо. Да, на самом деле я сейчас как раз в процессе этого. Раньше не пользовался PhoneGap. Нашли ли вы какие-либо важные ошибки (например, то, что невозможно в PhoneGap, чего требуют некоторые приложения Cordova), или все прошло относительно гладко? Еще раз спасибо.

4. Обратите внимание, я использую PhonegapBuild, который является облачной службой сборки Phonegap. Самая большая проблема, с которой я столкнулся, заключалась в автоматизации процесса сборки, но без PhonegapBuild у вас не должно было возникнуть этой проблемы. В любом случае, их API теперь очень мощный. Что касается самого Phonegap, то единственное, чего я опасаюсь, — это того, что однажды разработчики не будут работать достаточно быстро, чтобы быть совместимыми с новыми продуктами Android или Apple. Но на данный момент этого никогда не было. В противном случае не беспокойтесь после 2 лет работы. В настоящее время они оба имеют очень похожий API

5. Если вы не возражаете ответить еще на один вопрос, который был бы очень полезен мне и, я надеюсь, другим… Я настроил Phonegap и успешно использовал «Гидратацию» для запуска горячего кода. Я не смог найти никакой информации о том, как настроить базовые дисплеи / поведение гидратации (что, на мой взгляд, несовместимо с производством) где-либо в Интернете или в документах Adobe. Базовое поведение заключается в том, что при первой загрузке и перезапуске пользователи приложения видят уродливый, нестайлинговый черно-белый экран с надписью, например, «Инициализация, пожалуйста, подождите». Существуют ли параметры конфигурации? Многие новые пользователи будут отказываться, а не ждать.