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

时间:2015-02-23 17:39:12

标签: android cordova sapui5

我尝试创建配置文件以保留我的应用的某些配置。我正在使用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函数中所评论的那样,我尝试创建一个用于创建文件,读取和更新文件的类。

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

这是我的配置类:

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**};

}

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

根据Njtman的建议,我只需使用localstorage就可以在没有cordova文件插件的情况下保存文件中的信息。

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

index.html on deviceready event:

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

var conf = new Configuration();

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

conf.init();

配置类:

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文件了。