APICloud 项目学习小结

1、开发工具

APICloud Studio2

下载地址:https://www.apicloud.com/devtools

支持mac、windows、linux3种操作系统

2、真机调试

在客户端下载AppLoader

地址:https://docs.apicloud.com/Download/download

可以在APICloud官方网站上创建项目,也可以在APICloud Studio2开发工具中创建,如图2-1所示:

2-1

创建/打开项目后连接真机调试,下载AppLoader后,使用ip和端口号连接运行,如图2-2选中项目名称,右键-查看WIFI真机同步IP和端口后,项目右上角会出现如图2-3所示的方框

2-2
2-3

安装AppLoader进入后,屏幕上有个灰色的小圆圈,点击输入IP和端口号后,小圆圈变浅绿色即连接成功。这个时候就可以运行项目了,项目中常用的快捷键有:

control + i :运行整个项目

control + o:运行当前页面

control + option + B : 代码整理

3、常用知识点

1)、本地存储:用于登录后存储登录名和随机码等

存:$api.setStorage('loginName', ret.body.loginName);

取: var loginName = $api.getStorage('loginName');

2)、传递参数: 用于从A页面跳转到B页面时传值等,pageParam为包含参数的json串,当有参数需要传递时使用openWin方法,没有参数时可以直接使用href跳转,例:<a class="sousuo" href="index.html"></a>

api.openWin({

                                name: 'index',

                                url: './index.htm,

                                pageParam: {

                                   param:"name",

                                }

                            });

3)、取值赋值:根据id给某控件赋值或获取某个控件的值

a、value赋值:

document.getElementById('name').innerText=“小明”;

b、value取值:

var username = document.getElementById('name').value;

c、img标签图片赋值:

document.getElementById('image').src = '../image/dh-6.png'

d、div标签网络图片赋值:

document.getElementById("headurl").style.backgroundImage = 'url(' + url + ')';

e、div标签设置背景颜色:

document.getElementById('color').style.backgroundColor = '#0068b7';

4)返回键无效:使用a标签跳转进入的页面在点击返回时,通常使用

<a href="#" class="back"  onclick="history.go(-1);"></a>,但在iOS设备上,这句话是返回无效的,修改为<a href="#" class="back" onclick="history.go(-1);return false;"></a>

5)iOS设备上使用openwin方法跳页时,一闪而过会显示黑屏,加上 bgColor: 'white'这句话就没问题了

api.openWin({

            name: 'index',

            url: './index',

            bgColor: 'white',

        });

6)安卓物理返回键无效:在安卓设备上运行APICloud平台的项目时,偶尔会发生物理返回无效的问题,解决办法如下,在apireadey里调用该方法就可以了

function andriodBack() {

  api.addEventListener({

      name: 'keyback'

    }, function(ret, err) {

      api.historyBack();

  });

}

7)、时间戳转换成yyyy-MM-dd 00:00:00方法

//时间戳转时间

function formatDate(unix) {

    var now = new Date(parseInt(unix) * 1);

    now = now.toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");

    if (now.indexOf("下午") > 0) {

        var temp1 = now.substring(0, now.indexOf("下午")); //2014/7/6

        var temp2 = now.substring(now.indexOf("下午") + 2, now.length); // 5:17:43

        var temp3 = temp2.substring(0, 1); //  5

        var temp4 = parseInt(temp3); // 5

        temp4 = 12 + temp4; // 17

        var temp5 = temp4 + temp2.substring(1, temp2.length); // 17:17:43

        now = temp1 + temp5; // 2014/7/6 17:17:43

        now = now.replace("/", "-"); //  2014-7/6 17:17:43

        now = now.replace("/", "-"); //  2014-7-6 17:17:43

    } else {

        var temp1 = now.substring(0, now.indexOf("上午")); //2014/7/6

        var temp2 = now.substring(now.indexOf("上午") + 2, now.length); // 5:17:43

        var temp3 = temp2.substring(0, 1); //  5

        var index = 1;

        var temp4 = parseInt(temp3); // 5

        if (temp4 == 0) { //  00

            temp4 = "0" + temp4;

        } else if (temp4 == 1) { // 10  11  12

            index = 2;

            var tempIndex = temp2.substring(1, 2);

            if (tempIndex != ":") {

                temp4 = temp4 + "" + tempIndex;

            } else { // 01

                temp4 = "0" + temp4;

            }

        } else { // 02 03 ... 09

            temp4 = "0" + temp4;

        }

        var temp5 = temp4 + temp2.substring(index, temp2.length); // 07:17:43

        now = temp1 + temp5; // 2014/7/6 07:17:43

        now = now.replace("/", "-"); //  2014-7/6 07:17:43

        now = now.replace("/", "-"); //  2014-7-6 07:17:43

    }

    return now;

}

8)、拍照上传

在使用APICloud拍照上传功能时,iOS端没有什么问题,但在安卓端有3个问题需要注意。

a、在iOS端进入相机/相册后,点击取消时,即不执行上传图片的网络请求,但在安卓端,点击取消后仍会执行网络请求,解决办法:在执行网络请求前判断img常量是否为空

if (imgPath == null || imgPath == '' || !imgPath) {

            api.hideProgress();

            alert('请选择图片');

        } else {

        //ajax网络请求

}

b、在使用 api.getPicture()方法获取到的ret.base64Data(上传给后台的base64编码),上传时需要做截取,否则后台无法使用,如图8-1所示,iOS从22位开始截取,安卓从23位开始截取

8-1

获取设备类型方法如图8-2所示

8-2

c、在安卓端使用拍照作为上传方式时,执行到ajax的上传方法网络请求时,会直接走error方法,报错,如图8-3所示

8-3

原因:虽然拍照后能获取到base64编码,但图片过大,导致无法上传给后台

解决办法:在api.getPicture方法调用中,限制图片的宽高 targetWidth: 300,targetHeight: 300即可,如图8-4所示

8-4

9)、列表赋值和单条数据点击传值

列表赋值:在APICloud里列表赋值与iOS开发的TableView不同,而是把要循环的html写在循环内,如图9-1,后使用 $("#list_Receive").append(a);赋值或document.getElementById('list_Receive').innerHTML += a;其中list_Receive为存放列表的容器id

9-1

单条数据点击传值:图9-1的第一行代码中的onclick=\"pushtoOrderDe(\'' + orderId + '\')\",即点击传值,传递orderId,当需要传递多个参数时用”,“间隔,点击后代码如图9-2所示,orderId即所需传递至下一页面的参数

9-2

10)、图片点击放大-jQuery缩放效果lightbox插件

在head标签里倒入<script src="../js/zoomify.min.js"></script>,

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>

<link rel="stylesheet" href="../css/zoomify.min.css"> 

在所需要放大的div或img标签内添加class="zoomify",并实现

<script>

    $(function() {

      $('.zoomify').zoomify();

    });

</script>方法

参照demo:http://www.dowebok.com/214.html

4、坑集

1、在APICloud上使用ping++模块实现支付功能的过程中现有以下漏洞,

在前期准备工作都完好的前提下,当后台设置的channel=“wx”时(支付渠道),在安卓客户端调用ping++模块的pingpp.createPayment是无效的,并且设备会卡住不动,解决办法:把channel=“wx”改为channel=“wx_wap”,即由微信APP支付改为微信H5支付。但同时这样改完后在iOS客户端调用微信支付时,会导致支付成功后无法回调,故最终的解决办法:

在接口调用中新增设备类别device参数,

当device=“安卓”,后台设置channel=“wx_wap”;

当device=“iOS”,后台设置channel=“wx”;

(获取设备类型代码上图8-2中所示)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,027评论 0 2
  • 1. 验证正则表达式中的全局g对几种方法的影响 test校验方法:正则的方法总结:1)不添加全局g时,lastIn...
    果木山阅读 315评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,421评论 1 45
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,731评论 2 9
  • 文章图片上传不正常,如需文档,可联系微信:1017429387 目录 1 安装... 4 1.1 配置探针... ...
    Mrhappy_a7eb阅读 6,284评论 0 5