apicloud apicloud

注册
查看: 51179|回复: 49

[新手教程] 新手入门教程,从0开始入手APIcloud(二)

 

主题:
53
帖子:
333
云币:
552

APICloud粉丝APICloud毕业勋章一周年

[新手教程] 新手入门教程,从0开始入手APIcloud(二)

 
51179 49 | 发表于 2015-6-6 16:25:45 |阅读模式 | |
本帖最后由 流浪男 于 2015-6-8 15:49 编辑

前面一篇主要讲了项目的创建和布局方式。总结一下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(三)-- 缓存方案

1

查看全部评分

主题:
0
帖子:
3
云币:
3
发表于 2016-1-18 23:49:45 |
介绍的太模糊了,尤其是对我这样的新手来说,一头雾水。

主题:
59
帖子:
653
云币:
689

APICloud粉丝土豪版主勋章端午节

发表于 2015-6-6 16:29:43 |
牛人·~~~

主题:
13
帖子:
679
云币:
1141

中秋节APICloud粉丝圣诞节女朋友装逼侠单身狗

发表于 2015-6-6 17:12:05 |
谢谢分享 ,

主题:
1102
帖子:
5131
云币:
2147214885

圣诞节捣蛋鬼APICloud大会专属勋章足球狗儿童节快乐

发表于 2015-6-6 17:15:19 |
流浪的教程永远是最棒的

主题:
4
帖子:
784
云币:
138

一周年社会摇圣诞节你吃屎!女朋友APICloud大会专属勋章儿童节快乐

发表于 2015-6-6 17:20:24 |
ding diing  ding

业余车手

UID:22235

主题:
89
帖子:
1166
云币:
10259

版主勋章APICloud粉丝端午节

发表于 2015-6-6 18:00:05 |
再次顶起来!

主题:
0
帖子:
14
云币:
26
发表于 2015-6-7 00:15:28 |
精彩,请继续~~

主题:
2
帖子:
15
云币:
24
发表于 2015-6-7 09:52:57 |
好期待,楼主么么哒!那么多人看,也舍不得回复一下。期待,继续写,然后再录一个视频就更好了。

主题:
8
帖子:
363
云币:
2726

APICloud粉丝

发表于 2015-6-9 08:56:38 |
谢谢分享 ,~~~~~~

新手上路

UID:82508

主题:
7
帖子:
71
云币:
312
发表于 2015-6-10 00:22:09 |
顶起~
12345下一页
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表