SAPUI5 使用 cordova 文件创建配置文件

SAPUI5 using cordova file to create config file

我正在尝试创建一个配置文件来保留我的应用程序的一些配置。我正在使用 SAPUI5 和 cordova 文件。

目的是创建一个 conf.txt 以保留 URL、PORT 和 LDAP 数据以访问我的系统。但是,这些信息可能会更改,因此我需要更新文件。

在我的应用程序中,我已经在应用程序启动时准备好函数 deviceready,并创建了 conf.txt:

function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
    /*jQuery.sap.require("model.Config");

    var conf = new Configuration();

    conf.init();*/

    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}

function gotFS(fileSystem) {
    fileSystem.root.getFile("conf.txt", {create : true,exclusive : false},gotFileEntry, fail);
}

function gotFileEntry(fileEntry) {
    //alert(fileEntry.fullPath);
    fileEntry.createWriter(gotFileWriter, fail);
}

function gotFileWriter(writer) {
    writer.onwriteend = function(evt) {
        alert("OK");
    };
    var conf = "URL=\r\nPORT=80\r\nLDAP=false";
    writer.seek(writer.length);
    writer.write(conf);
}

function fail(error) {
    alert(error.code);
}

我没有做任何与其他示例不同的事情。但是,正如我在 onDeviceReady 函数中评论的那样,我尝试创建一个 class 用于创建文件、读取和更新它。

我找到的所有示例都引用了 deviceready 事件。我可以在这个事件上只使用 FileWriter 和 FileReader 的方法吗?

这是我的配置Class:

function Configuration() {
    this.fileName = "conf.txt";

    this.init = function() {**How to use the cordova API here**};

    this.read = function(){**How to use the cordova API here**};

    this.update= function(){**How to use the cordova API here**};

}

感谢帮助!

按照 Njtman 的建议,我只需要使用 localstorage.

就可以在没有 cordova 文件插件的情况下将信息保存在文件中

我想分享找到的解决方案。

index.html 设备就绪事件:

jQuery.sap.require("model.Config");

var conf = new Configuration();

sap.ui.getCore().setModel(conf, "Config");

conf.init();

配置class:

sap.ui.model.json.JSONModel.extend("Configuration", {

url: "",
port: "80",
defaultport: true,
ldap: false,

init : function() {
    var deferred = $.Deferred();
    console.log("INITIALIZING...");

    var config = JSON.parse(window.localStorage.getItem("config"));

    if(config == null){
        console.log("CONFIG IS NULL");
        window.localStorage.setItem("config", JSON.stringify(
                {"URL": this.url, "PORT": this.port, "DEFAULTPORT": this.defaultport, "LDAP": this.ldap}
            ));         
    }

    deferred.resolve();
    this.setData(JSON.parse(window.localStorage.getItem("config")));
    this.setVars();

    console.log(this.getJSON());

    return deferred.promise();
},

save: function(url, port, defaultport, ldap){

    var deferred = $.Deferred();
    console.log("SAVING...");

    window.localStorage.setItem("config", JSON.stringify(
           {"URL": url, "PORT": port, "DEFAULTPORT": defaultport, "LDAP": ldap}
        ));

    deferred.resolve();
    this.setData(JSON.parse(window.localStorage.getItem("config")));

    this.setVars();

    return deferred.promise();

},

setVars: function(){
    this.url = this.getProperty("/URL");
    this.port = this.getProperty("/PORT");
    this.defaultport = this.getProperty("/DEFAULTPORT");
    this.ldap = this.getProperty("/LDAP");

}
});

现在我可以阅读和更新我的 json 文件。