Недавно я сделал приложение, которое требовало этого, ориентируясь на те же ОС. Вы можете использовать комбинацию из 2 баз данных:
<сильный>1. Локальное хранилище ::
Проверить локальное хранилище
function supports_html5_storage() {
try {
return 'localStorage' in window && window['localStorage'] !== null;
} catch (e) {
return false;
}
}
Поместить элемент в LocalStorage
localStorage.setItem("bar", foo);
or
localStorage["bar"] = foo;
Получить элемент из LocalStorage
var foo = localStorage.getItem("bar");
or
var foo = localStorage["bar"];
<сильный>2. База данных SQLite (более удобная, более постоянная)
Настройте базу данных
var shortName = 'BHCAppDB';
var version = '1.0';
var displayName = 'BHCAppDB';
var maxSize = 65535;
if (!window.openDatabase){
alert('!! Databases are not supported in this Device !! \n\n We are sorry for the inconvenience and are currently working on a version that will work on your phone');
}
db = openDatabase(shortName, version, displayName,maxSize);
createAllTables(db);
Создайте свои таблицы
function createAllTables(db){
db.transaction(function(transaction){
transaction.executeSql("CREATE TABLE IF NOT EXISTS Profile(id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT, gender TEXT,age INTEGER)");
}
Выполнение SQL-запроса
transaction(function(transaction){
var rowCount = 'SELECT * FROM Profile';
transaction.executeSql(rowCount,[],function(transaction,result){
if(result.rows.length == 0){
var sqlString = 'INSERT INTO Profile (name,gender,age) VALUES("自己","Female",18)';
transaction.executeSql(sqlString);
}
});
});
РЕДАКТИРОВАТЬ :: Я забыл добавить последний вариант :)
<сильный>3. Собственное хранилище на всех устройствах
Это лучшая часть Phonegap. Вы можете вызвать собственный класс подключаемого модуля на всех устройствах с помощью вызова подключаемого модуля Phonegap. Во время вызова вы можете передавать параметры классу, а нативный класс может хранить ваши данные в самой ОС.
Например:: в iOS вы создаете класс плагина .h и .m и регистрируете его в файле Cordova.plist. Как только это будет сделано, вам нужно отправить вызов классу из JavaScript с помощью Phonegap. Как только параметры были получены с использованием NSDictionary или любого другого типа NSArray, вы можете вызвать класс CoreData для хранения НЕОГРАНИЧЕННОГО количества данных. У вас никогда не закончится память.
Это можно сделать аналогичным образом и для всех остальных ОС :)
Для шифрования попробуйте следующее:: SQLCipher
Вот дополнительная информация о работе с существующей базой данных SQLite. В этом примере зашифрованный.db — это новая база данных, которую вы создаете и прагма.
ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'secret'; -- create a new encrypted database
CREATE TABLE encrypted.t1(a,b); -- recreate the schema in the new database (you can inspect all objects using SELECT * FROM sqlite_master)
INSERT INTO encrypted.t1 SELECT * FROM t1; -- copy data from the existing tables to the new tables in the encrypted database
DETACH DATABASE encrypted;
person
SashaZd
schedule
04.04.2013