Ответ 1
Если вы используете кордову, эта проблема была исправлена давно, даже для iOS 5 и iOS 6. Не стоит беспокоиться, используете ли вы последнюю версию кордовы.
Я разрабатываю гибридное приложение (только для iOS и Android) с помощью PhoneGap/Cordova и хочу использовать HTML5 localStorage для хранения контента для автономного доступа.
http://caniuse.com/#search=localStorage говорит - "В iOS 5 и 6 данные локального хранилища хранятся в местоположении, которое иногда может быть очищено ОС."
Какова ситуация с веб-просмотром iOS 7 (и более поздним), в каких случаях локальная хранилище сохраняется или очищается (операционной системой или пользователем)?
Будет ли обновление для приложения очищено localStorage?
Как насчет того, чтобы пользователь очистил историю браузера Safari - это тоже относится к веб-просмотру?
Мне нужно беспокоиться (или я могу даже контролировать), где в системе fils создается localStorage. Я понимаю, что он не должен подкрепляться iCloud.
У меня есть устройство (iPad) и проверка файловой системы, я вижу, что файл localStorage находится в ~/Library/Caches в изолированной программной среде приложения, см. изображение ниже.
Из документов:
https://developer.apple.com/icloud/documentation/data-storage/index.html Данные, которые могут быть загружены повторно или регенерированы, должны храниться в каталоге /Library/Caches. Примеры файлов, которые вы должны поместить в каталог Caches, включают файлы кэша базы данных и загружаемый контент, например, используемый журналом, газетами и картографическими приложениями.
Я просто делаю это, чтобы установить данные:
localStorage.setItem('foo','this is the FOO value');
localStorage.setItem('bar','and this is the BAR value');
Если вы используете кордову, эта проблема была исправлена давно, даже для iOS 5 и iOS 6. Не стоит беспокоиться, используете ли вы последнюю версию кордовы.
Если вы все еще сталкиваетесь с проблемой с Cordova-iOS v4, попробуйте плагин NativeStorage. https://www.npmjs.com/package/cordova-plugin-nativestorage.
Он установил, поставил и получил функции, реализующие возможности платформы, такие как общие настройки android и iOS NSUserDefaults, которые делают хранение данных максимально безопасным.
cordova plugin add cordova-plugin-nativestorage
NativeStorage.putObject("reference_to_value",<object>, <success-callback>, <error-callback>);
NativeStorage.getObject("reference_to_value",<success-callback>, <error-callback>);
Как уже упоминалось, я считаю, что лучше всего использовать плагин NativeStorage:
https://www.npmjs.com/package/cordova-plugin-nativestorage
Чтобы ответить на ваши вопросы:
localStorage
хранятся в каталоге кэша в файловой системе, а кеш часто очищается ОС (например, когда устройство находится на низком диске).