前面一篇主要讲了项目的创建和布局方式。总结一下APP的布局方式最佳为win+frame,多写个文件多弄点优化才能让你的APP流畅度提高。 这篇主要来讲一下模块的引入、服务器数据对接及APP数据存储方式。 一、模块的引入和使用 在apicloud的模块store里面提供了大量的模块,我们可以直接在html里面引入使用 使用方法: 在需要使用模块的页面中加入: var obj = api.require('模块名'); 然后参考对应模块的使用方法。如果在一个页面中频繁使用到一个模块的功能,最好就将其声明称全局变量。 二、服务器数据对接---云数据库和本地服务器 1、在APICLOUD开发的过程中,我们看到了一个新名词,数据云。这个是apicloud提供给开发者的一个云数据库,我们可以利用它来完成数据的存储和读取。 开启数据云流程, 进入控制台---左侧云设置----选择一个储存服务--确定即可开通,然后在Database里面我们会看到默认的几张表 (以下注释非官方注释,个人理解的意思 *.*) accessToken ---- 存储用户令牌类 file ---- 文件类 role ----- 角色配置 roleMapping --- 相关对应的角色权限 user ----- 用户 (默认的表前面有个下划线不用理会他,就当不存在哈) 当然我们也可以根据自己的需求创建各类表,通过添加列来自己表字段,注意根据自己需求设置下字段类型,字段类型不懂的可以百度一下,主要有字符,数字,时间,文件,数组,关联等 对于数据表的操作说简单的点就是增删改查,下面说一下数据云的使用方法,在文档里面对应(mcm) 我们通过model模块来实现数据云的操作,首先引入和配置下model模块 var model = api.require('model'); model.config({ appKey: 'A991A337-0212-A29D-0C9C-A518E39FXXXX', host: 'https://d.apicloud.com' }); appKey 可以在控制台里面查看。 然后通过model的各种方法来实现增删改查 例子,插入数据 var model = api.require('model'); model.insert({ class: '表名', value: { 字段: '值' } }, function(ret, err){ if(ret){ //do something } }); 其他的方法请参考: http://docs.apicloud.com/%E7%AB%AFAPI/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%AF%B9%E6%8E%A5/mcm#a2 TIP:在apicloud,一般用ret来标识成功的返回,err表示错误 在表的操作中数据返回的是JSON格式,我们拿到这个JSON数据后就开始用js来处理,插入到html元素中 自己可以建个表,按照文档来试一下各种方法。 2、从自己的服务器读写数据 apicloud封装了一个ajax的方法来方便我们通过post或get等获取服务器数据,获取的数据类型有json和text格式,使用方法跟JS原生和jq的post get 大同小易 重点来说一个几个注意的地方 当使用post时,发送的数据要写在data的values里面。 当为get时,data是不起作用的,发送的数据放在url里面 以php为例接受时直接 $name = $_POST['name']; 三、APP数据存储方式 在apicloud的数据方式还是蛮多的,上面的数据云和自己服务器算是两个吧,下面还有H5的本地保存,读写文件方式,设置偏好值等。 1、H5本地保存 localStorage 在apicloud中已经封装的更简单了 $api.setStorage('name','key');//设置 $api.getStorage('name');//获得指定name的值 $api.rmStorage('name');//清除指定name的值 $api.clearStorage();//清楚全部本地数据 不过这个方式不建议大数据的读取,可以用来存取用户的基本信息 文档 http://docs.apicloud.com/APICloud/%E6%8A%80%E6%9C%AF%E4%B8%93%E9%A2%98/framework-dev-guide#39 2、文件存储方式 readFile和writFile fs模块 如果不牵扯到文件的修改的话建议使用readFile和writeFile,操作还要方便些。 这些主要用在保存大数据和保存内容缓存,保存文件的时候个人觉得保存到缓存文件夹里面,获取方式 var cacheDir = api.cacheDir; 例子,比如我们要将内容列表写到本地,然后将列表的内容分别保存一个文件,下次打开APP的时候先查询有没有对应的本地文件,没有的话或者有更新再从服务器读取 以JSON数据为例:得到JSON数据后 var cacheDir = api.cacheDir; api.writeFile({ path: cacheDir+'/自定一个文件名.json', data: JSON.stringify(josn) }, function(ret, err){ }) 注意要将json转为字符串,否则无法写入,(不转换的话安卓设备可以写入,IOS上是不行的) 读取: api.readFile({ path: cacheDir+'/文件名.json' }, function(ret, err){ if(ret.status){ var jsonData = JSON.parse(ret.data); } }); 注意读的时候将数据转为对象 3. 此外apicloud还提供了api.setPrefs的方法来设置偏好值 参考文档:http://docs.apicloud.com/%E7%AB%AFAPI/api#45 到此数据这一块的处理又差不多到一阶段了,多多动手才能发现问题,发现了才能去解决。我提供的只是一种思路方式,关键还得靠大家。谢谢 下一篇将介绍 APP 优化的处理, 新手入门教程,从0开始入手APIcloud(一) 新手入门教程,从0开始入手APIcloud(二) 新手进阶教程,从0入手APICloud(三)-- 缓存方案 |