Вам необходимо установить логическое значение localStorage
:
$("section").toggleClass("dark");
let darkThemeEnabled = $("section").hasClass("dark");
localStorage.setItem("dark-theme-enabled", darkThemeEnabled);
Также измените способ получения:
if (localStorage.getItem('dark-theme-enabled')) {
$('section').addClass('dark');
$('ul').addClass('active');
}
Я думаю, что лучший способ - использовать базу данных.
Обновление: Но; Если вы хотите кэшировать только данные, в webkit есть менеджер кеша. CacheManager
Я не использовал этот пакет раньше, но методы кажутся простыми в использовании:
static boolean cacheDisabled()
static boolean endCacheTransaction()
static CacheManager.CacheResult getCacheFile(String url, Map<String, String> headers)
static File getCacheFileBaseDir()
static void saveCacheFile(String url, CacheManager.CacheResult cacheRet)
static boolean startCacheTransaction()
и вы можете найти их в код Google Gears
Надеюсь, это поможет.
If you you don't want to use the CacheManager then use a database or a local (non-SD) file (local files get deleted on a complete uninstall) and register to receive the 'ACTION_DEVICE_STORAGE_LOW' and 'ACTION_DEVICE_STORAGE_OK' broadcast actions. Then you'll know when your application is taking up too much space according to the device and when you need to start deleting pictures. Your application size will still grow, but you will be able to manage the growth and shrinkage.
Просто совет - если вы сохраните их на SD-карте, они будут отсканированы MediaScanner и появятся в галерее пользователей (фотографии) , который вам, вероятно, не нужен. Так что вы, вероятно, захотите сохранить их в телефоне или как-то сказать MediaScanner не сканировать их (очевидно, это невозможно после быстрого поиска в Google).
Вероятно, лучше всего сохранить несколько избранных в личном каталоге вашего приложения, который будет удален при удалении вашего приложения.
Вы можете скрыть изображения из MediaScanner, если вы поместите его в скрытый каталог (т. Е. С префиксом точки), например /sdcard/.donotscan/
.
Обновление: как romainguy упоминает в твиттере , это также работает, если вы поместите файл с именем .nomedia
в каталог.