2013-04-19 5 views
2

В нашем приложении Пользователь может загружать PDF-файлы и открывать их через InAppBrowser на iOS или локальном PDF-Reader на Android. Чтобы сохранить файлы, мы используем параметр LocalFileSystem из Phonegap. Он работает хорошо, но проблема в том, что файлы хранятся в внешнем хранилище на Android. Это вызывает некоторые проблемы. Во-первых, Файлы доступны для Пользователя, а во-вторых, когда я удаляю приложение , файлы по-прежнему сохраняются. Я не понимаю, почему Phonegap не использует внутреннее хранилище, чтобы сделать его похожим на iOS.PhoneGap LocalFileSystem на Android использует внешнее хранилище вместо внутреннего хранилища

Так вот мой вопрос: Есть ли способ хранить файлы на внутреннем хранилище с PhoneGap, я пропустил что-то очевидное, или я должен написать мой собственный плагин для хранения файлов во внутренней памяти?

Примечание:

  • Пожалуйста, нет ответов, как я мог бы использовать вместо LocalStorage. Я хочу использовать INTERNAL Storage.
  • Я использую PhoneGap: 2,6, может быть понижение до 2.5.0 (как вы можете заметить, локальное хранение в настоящее время не работает правильно на Android с 2.6.0, а -.-)
+0

код доступен на загрузки PhoneGap сайта файлы на SD-карте, но на некоторых устройствах это, это загрузить файлы во внутренней памяти (проводной) поведение – Hemantwagh07

ответ

3

На Android метод

window.requestFileSystem

будет проверять, если есть SD карта доступна на устройстве. Если есть, то ваш корневой каталог будет SD-картой. Если не будет использовать

/data/data/{app package name}

Я думаю, вам нужно указать корневой каталог на Android, так что не использует SD-карту по умолчанию.

This blog может быть вам подходит.

+0

Спасибо за ваш ответ, но я Думаю, я возьму LocalFileSystem.Temporary. –

+0

@ RenéRamge Временное означает, что ОС может удалить ваши файлы в любое время – Mirko

2

Документация Phonegap не содержит подробных сведений. Вот некоторая информация, я хотел бы добавить к LocalFileSystem Документация: http://docs.phonegap.com/en/2.6.0/cordova_file_file.md.html#LocalFileSystem

LocalFileSystem.Persistant:

  • Android: Использование внешнего хранилища. Файлы, сохраненные во внешнем хранилище, доступны для чтения и могут быть изменены или удалены пользователем. При удалении приложения файлы сохраняются. Источник: http://developer.android.com/guide/topics/data/data-storage.html#filesExternal
  • iOS: LocalFileSystem.Persistant использует внутреннее хранилище, специфичное для приложения. Пользователь не может изменять или удалять файлы.

LocalFileSystem.Temporary:

  • Android: Использование внешнего каталога кэша. Файлы, сохраненные во внешнем хранилище, доступны для чтения и могут быть изменены или удалены пользователем. ** Если пользователь удаляет ваше приложение, эти файлы будут автоматически удалены.
  • iOS: Такое же поведение, как и Persistant.

Резюме: Я до сих пор понятия не имею, почему PhoneGap не с помощью внутреннего хранилища, чтобы сделать его похожим на IOS. Но, так как я не заметил никаких различий между Persistant и Temporary в IOS, и файлы удаляются при удалении приложения на Android, я бы предложил всегда использовать LocalFileSystem.Temporary.

Update: В прошивке, если вы не используете настойчивы, ваши данные могут быть удалены с помощью ОС в случаях низкой памяти

Согласны ли вы с этим?

Спасибо и извините за мой плохой английский :)

Смежные вопросы