Сохранение пользовательских настроек в QML / JS

Я работаю над небольшой игрой, и я хотел бы знать, как я могу написать / прочитать файл настроек пользователя в Ubuntu Touch?

4
задан 20.05.2020, 00:32

2 ответа

У Вас есть несколько опций, можно использовать LocalStorage для создания локальной sqlite базы данных для удержания настроек. Или можно использовать (все еще очень этапный альфой) компонент U1DB, который будет все еще использовать локальную sqlite базу данных, но также и позволяет Вам синхронизировать свою базу данных настроек между различными машинами/устройствами пользователя.

2
ответ дан 20.05.2020, 00:34

Пример LocalStorage

storage.js

function getDatabase() {
     return LocalStorage.openDatabaseSync("appname", "0.1", "SettingsDatabase", 100);
}

function set(setting, value) {
   var db = getDatabase();
   var res = "";
   db.transaction(function(tx) {
        tx.executeSql('CREATE TABLE IF NOT EXISTS settings(setting TEXT UNIQUE, value TEXT)');
        var rs = tx.executeSql('INSERT OR REPLACE INTO settings VALUES (?,?);', [setting,value]);
              if (rs.rowsAffected > 0) {
                res = "OK";
              } else {
                res = "Error";
              }
        }
  );
  return res;
}

function get(setting, default_value) {
   var db = getDatabase();
   var res="";
   try {
       db.transaction(function(tx) {
         var rs = tx.executeSql('SELECT value FROM settings WHERE setting=?;', [setting]);
         if (rs.rows.length > 0) {
              res = rs.rows.item(0).value;
         } else {
             res = default_value;
         }
      })
   } catch (err) {
       //console.log("Database " + err);
       res = default_value;
   };
  return res
}

импорт QML

import QtQuick.LocalStorage 2.0
import "storage.js" as Settings

использование QML

Settings.get("setting_name",8)
Settings.set("setting_name", itemid.property)

я использовал этот пример , но должен был изменить его.

0
ответ дан 20.05.2020, 00:33

Теги

Похожие вопросы