关于前端:YonBuilder-移动开发平台之数据存储

40次阅读

共计 1922 个字符,预计需要花费 5 分钟才能阅读完成。

YonBuilder 挪动开发平台之数据存储

YonBuilder 挪动开发平台开发者提供了多种本地数据存储计划,包含 Local Storage、偏好数据、文件和数据库等,以满足不同规模数据存储需要。其中 Local Storage 和偏好数据个别用于存储比较简单、规模较小的数据,而文件和数据库多用于存储大量数据,并且利于治理。

  1. Local Storage

YonBuilder 挪动开发平台对 html5 的 Local Storage 进行了封装,在存储时更加不便。通过 $api 对象的 setStorage 办法不仅能够存储字符串,还能够间接存储 JSON 对象,而 getStorage 获取时也能够间接失去 JSON 对象。用法如下:

var key = ‘user’;

var user = {};

user.name = ‘kenny’;

user.email = ‘kenny@163.com’;

$api.setStorage(key, user);

user = $api.getStorage(key);

  1. 偏好数据

实用于大量的偏好设置数据的存储,个别用于保留一些状态值等,不举荐大量的数据通过此形式存储。api 对象提供了 setPrefs、getPrefs、removePrefs 办法,以键值对的形式传入参数,进行设置、获取和移除等,例如记录利用是否是第一次启动:

api.setPrefs({

firstLaunch:false

});
其它办法请参考 api 对象文档。

  1. 文件

    (1)api 对象办法

YonBuilder 挪动开发平台开发者提供了文件和文件夹相干操作 API,包含创立、挪动、删除文件和文件夹等,以及文本内容的读写操作。其中 api 对象提供了根本的 readFile、writeFile 办法,反对整个文件内容的读写操作,其读写文件示例代码如下:

api.readFile({

path: 'fs://a.txt'

}, function(ret, err){

if(ret.status){var data = ret.data;}

});
api.writeFile({

path: 'fs://a.txt',

data:'writeFile 测试内容'

}, function(ret, err){

if(ret.status){api.alert({msg:'写入文件胜利'});

} else{api.alert({msg:err.msg});

}

});
(2)fs 对象办法

若要应用更加丰盛的文件操作 API,则须要引入 fs 原生插件,该原生插件具体定义了文件和文件夹的相干操作,并且反对文本内容的指定地位读写,其写文件示例代码如下:

var fs = api.require(‘fs’);

fs.open({

path:'fs://test.txt',

flags:'read_write'

},function(ret, err) {

if (ret.status) {

    var fd = ret.fd; //fd 为文件句柄

    fs.write({

        fd:fd,

        data:'text',

        offset:0

    },function(ret,err){if (ret.status) {api.alert({msg:'write 操作胜利'});

        } else{api.alert({msg:err.msg});

        }

    });

}

});
其它办法请参考 fs 原生插件文档。

  1. 数据库

YonBuilder 挪动开发平台开发者提供了操作本地数据库的接口,但须要开发者相熟根本的 SQL 语句,如创立表、插入和更新数据、获取数据等操作。

db 原生插件提供了数据库相干操作 API,详见 db 原生插件文档。局部示例代码如下:

创立一张名为 Persons 的表:

var db = api.require(‘db’);

var sql = ‘CREATE TABLE Persons(Id_P int, LastName varchar(255), FirstName varchar(255),

Address varchar(255), City varchar(255))’;

db.executeSql({

name: 'databaseName',

sql: sql

}, function(ret, err){

if(ret.status){api.alert({msg:'创立表胜利'});

} else{api.alert({msg:err.msg});

}

});
从 Persons 表外面查问数据:

var db = api.require(‘db’);

var sql = ‘SELECT * FROM Persons’;

db.selectSql({

name:'databaseName',

sql: sql

}, function(ret, err){

if(ret.status){var data = ret.data;} else{ };

});

正文完
 0