Как хранить настройки приложения сделанного в PhoneGap. Например, необходимо чтобы пользователь ввел какие-то настройки в приложении, сохранил их и при следующем запуске программы настройки загрузились и выставились в приложении. Для этого нам понадобится WebSQL.
Сохраняем параметры в базу данных. Открываем соединение с базой и пытаемся добавить данные.
Заполняем базу данных.
Загружаем сохраненные настройки. Пытаемся подключится к базе данных.
Если подключится к базе удалось, тогда пытаемся выполнить запрос к базе данных.
Обработчик в случае ошибки при обращении к базе данных.
Если удалось получить данные в результате запроса к базе, то тогда сохраняем эти данные в переменные, которые потом используем для заполнения форм ввода на экране.
Сохраняем параметры в базу данных. Открываем соединение с базой и пытаемся добавить данные.
saveSearchSetting: function () { ... var db = window.openDatabase("saved_settings", "1.0", "SEARCH_SETTINGS DB", 1000000); db.transaction(page.populateDB, page.errorCB); }
Заполняем базу данных.
populateDB: function (tx) { tx.executeSql('DROP TABLE IF EXISTS SEARCH_SETTINGS'); tx.executeSql('CREATE TABLE IF NOT EXISTS SEARCH_SETTINGS (id unique, paramName, paramValue)'); tx.executeSql('INSERT INTO SEARCH_SETTINGS (id, paramName, paramValue) VALUES (1, "fromCity", "' + page.fromCity + '")'); tx.executeSql('INSERT INTO SEARCH_SETTINGS (id, paramName, paramValue) VALUES (2, "toCity", "' + page.toCity + '")'); tx.executeSql('INSERT INTO SEARCH_SETTINGS (id, paramName, paramValue) VALUES (3, "deviceName", "' + page.deviceName+ '")'); tx.executeSql('INSERT INTO SEARCH_SETTINGS (id, paramName, paramValue) VALUES (4, "categories", "' + page.categories+ '")'); tx.executeSql('INSERT INTO SEARCH_SETTINGS (id, paramName, paramValue) VALUES (5, "types", "' + page.types+ '")'); tx.executeSql('INSERT INTO SEARCH_SETTINGS (id, paramName, paramValue) VALUES (6, "pageNumber", "' + page.pageumber+ '")'); }
Загружаем сохраненные настройки. Пытаемся подключится к базе данных.
loadSavedSearchSettings: function () { var db = window.openDatabase("saved_settings", "1.0", "SEARCH_SETTINGS DB", 1000000); db.transaction(page.queryDB, page.errorCB); }
Если подключится к базе удалось, тогда пытаемся выполнить запрос к базе данных.
queryDB: function(tx) { tx.executeSql('SELECT * FROM SEARCH_SETTINGS', [], page.querySuccess, page.errorCB); }
Обработчик в случае ошибки при обращении к базе данных.
errorCB: function (err) { page.findGeolocation(); }
Если удалось получить данные в результате запроса к базе, то тогда сохраняем эти данные в переменные, которые потом используем для заполнения форм ввода на экране.
querySuccess: function(tx, results) { var len = results.rows.length; for (var i=0; i<len; i++){ if (results.rows.item(i).id == 1) { page.fromCity = results.rows.item(i).paramValue; } if (results.rows.item(i).id == 2) { page.toCity = results.rows.item(i).paramValue; } if (results.rows.item(i).id == 3) { page.deviceName= results.rows.item(i).paramValue; } if (results.rows.item(i).id == 4) { var str = results.rows.item(i).paramValue; page.categories = str.split(","); } if (results.rows.item(i).id == 5) { var str = results.rows.item(i).paramValue; page.types = str.split(","); } if (results.rows.item(i).id == 6) { page.pageNumber = results.rows.item(i).paramValue; } } page.fillForm(); }
Комментариев нет:
Отправить комментарий