Используя Cordova, могу ли я получить доступ к файлам по ссылкам в файле JSON?

Я делаю веб-приложение, которое создает курсы и получает данные (модули, уроки, включая тексты, изображения, аудио, видео) из файла JSON.

Люди могут обмениваться курсами без использования Интернета. Курс структурирован в папке следующим образом:

course.json
./audio
./video
./documents
./images

Он может работать полностью в автономном режиме, без сервера — до тех пор, пока папки данных находятся внутри приложения (то есть папка html). Но когда JSON находится в другом месте (скажем, в загрузках, Bluetooth или документах), будут показаны сами данные JSON, но не данные (изображения и т. д.), на которые они указывают.

Это ожидаемое поведение, и его можно решить, просто переместив папки JSON и данных в нужное место. (что пока приемлемо, но не в долгосрочной перспективе)

But when I use Cordova to create an Android app, that won't be possible. And it looks like the file API doesn't have a solution for this.

Поэтому я хотел бы использовать файл JSON, где бы он ни находился, в качестве корня для получения других данных или для возможности импорта всей папки в приложение.

Есть ли варианты? Или стоит полностью родной перейти?

ОБНОВИТЬ

Похоже, невозможно получить то, что мне нужно (путь к файлу json, выбранному пользователем, для пересоздания ссылок в атрибутах src).

Таким образом, единственная возможность — позволить пользователям сохранять файлы курса в определенном месте (например, в «Загрузках» или «Документах»).

Поскольку, в конце концов, я хочу сделать курсы загружаемыми в виде zip-файла, я выбираю вариант распаковать его в приложение — кажется, это самое простое решение.


person Erik    schedule 16.05.2016    source источник
comment
Файловый плагин Кордовы?   -  person an earwig    schedule 16.05.2016
comment
Не совсем уверен, что ваш вопрос на самом деле. Вы можете использовать файловый API для перемещения файла JSON в нужное место, если это то, о чем вы просите.   -  person whodeee    schedule 16.05.2016


Ответы (1)


Что вам нужно: $cordovaFile, у него есть все необходимые методы для управления файлами, такие как копирование, перемещение и проверка существования файлов по определенному локальному пути. Вот документ: http://ngcordova.com/docs/plugins/file/.

PS. Не ходи родной, ха-ха (личное мнение)

person MasterJohn    schedule 16.05.2016
comment
Ах, спасибо мастер Джон! Похоже, я оказался не на тех страницах, у меня сложилось впечатление, что файловый API очень похож на файловый API HTML5, но это выглядит намного лучше! - person Erik; 17.05.2016