Salvando configurações do usuário em QML/JS

Salvando configurações do usuário em QML/JS

Estou trabalhando em um jogo pequeno e gostaria de saber como posso escrever/ler um arquivo de configurações do usuário no Ubuntu Touch?

Responder1

Você tem algumas opções, você pode usar umArmazenamento localpara criar um banco de dados sqlite local para manter suas configurações. Ou você pode usar o (ainda em estágio alfa)U1DBcomponente, que ainda usará um banco de dados sqlite local, mas também permite sincronizar seu banco de dados de configurações entre as diferentes máquinas/dispositivos do usuário.

Responder2

Exemplo de armazenamento local

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
}

Importações QML

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

Uso de QML

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

eu useieste exemplomas tive que modificá-lo.

informação relacionada