最近在用apicloud开发,这里录入一些踩坑的地方,从头到尾,要多尴尬有多尴尬,新入app开发,记录一些心得,和遇到的坑以及解决办法。

 1,apicloud 打包的Android app ,打开frame页面时,配置rect时(窗口的大小位置描述),发现,‘auto’的宽度,约有15px的右边留白。目前不知道具体原因。

详细描述一下问题,即openFrame的时候,设置rect: { w:'auto' }(其他配置省略描述)时,在新frame中,设置div宽度为100%,不能够充满通栏。右侧有约

15px的留白,目前比拙劣的使用了,api.frameWidth+15进行了通栏操作,但是,div右侧会有15px进入到右边向左滑动才会出现的间隙留白。因此给了右边

一个15px的内边距padding解决了。(非常想说是15公分),不知道是否是常见问题,apicloud社区没有搜到相关问题有知道的大佬,烦请告知。

还有很多问题,再慢慢总结,先上班,未完待续~~~~~欢迎沟通交流,谢前辈们。

1. tac深坑 ,tac根据当前 宽度,进行文本的自适应水平居中,但是在移动端,屏幕大小变化的,无法同步自适应。
导致文字剧中,解决方法,div包裹,文本,转化为div在div中水平,垂直剧中即可
在浏览器环境下,window.onresize事件中,可以动态添加div行内属性,textAlign='center'.

2. 利用jq的序列化方法serializeArray ,封装了一个serializeObject方法,并重新挂在jQuery.prototype上。
3. 入口文件index.html 首先应该判断是否登陆,如果登陆,在初始化页面,打开首页main.html对应的页面,如果没有登陆
就应该显示login.html对应的页面,配合localStorage进行验证 这里如果要用到token会好一些,可以在登录时,给后台发送token,判断token是否过期。

更好的控制登录。

4. apicloud中5大ui 组件之间的关系是, app>(启动页)>widget(一个或者多个项目包)>window
(每一个项目包对应默认打开一个window)>frame/frameGroup的关系,最开始打开应用的时候默认打开的文件就
是一个window 。基本是window+frame的布局方式在子frame会依赖在父frame上。

5 在apicloud中,尽量使用padding去设置,大的木块如header,main边距,否则,会增高#wrap的高度,高出一个
api.frameHeight的高度就会出现留白。

6 在apiready中才能够访问到api,引入外部ui组件的时候,需要创建实例,实例的回调需要用到api方法,如openframe时
应该把实例定义在apiready中,其实即 ‘’ ‘’实际上也就挂载在api上,$api也能够访问。也可以把window.apiread挂载window上

把ui对象实例化对象也挂载window上。

7 tapmode属性,解决300毫秒延迟

8 页面之间反向传值,可以在下一个页面frame定义一个api.sendEvent({})name 定义事件名称, extra 传递参数,
在监听事件addEventListener时,回调函数function(ret,err) 分部获取参数,和报错。传递参数有一个小坑,

出现2中取值情况。ret.value.key 或者ret.value.key.index 暂时不明白机制,做了兼容性处理。

9 布局中,将main部分当做是新的frame打开区域,打开main是在原来frame的情形下打开的,仍然会占据位置
如果需要底部的tabbar,并不能用定位定到底部。
10 实现底部按钮的时候,不能够直接定位到底部,app里面是不支持的,一般需要两端去头去尾,开辟一个frame空间,设置
高度之后,能够让底部botton站在底部位置。但是如果中间不需要新的frame的时候就不能够很好的让botton,居于底部
这里直接,在打开window的时候就在底部打开一个frame只用来装botton.html这样的话就能够实现了。
11 键盘弹出时, 盖住输入框。 ios可以监听事件keybordshow,回到中ret.h表示是键盘的高度,通过判断,输入框的高度,
来进行判断是否需要操作页面。
12 常识: apicloud中想要去操作dom,外面去获取,apiready中不一定能拿到dom出现问题 ,时机可能是不对的

13 使用api.bringFrameFont 方法是需要frame先打开的。为了节省资源,我判断了是否打开。如果没打开,则openFrame,

如果已经打开了,选择api.bringFrameFont ,判断依据比较拙劣,使用的是var frames = api.frames()返回一个包含已打开frame名的

的动态数组。数组包含对像{ name: }的形式。使用了filter筛选出的名称相等的数组,进行了长度判断。比较劣质,欢迎讨论

14 关于api.bringFrameFont另外一个坑。不能够操作FrameGroup中的frame,通过frameGroup中的frame出现的形式,应该是左右排列的

所有不太生效。

15 小技巧,如果在操作按钮时,如果不想去操作dom注册事件,可以定义事件,然后再行内式注册事件,免去操作dom的麻烦。

16 header部分,因为需要title居中显示,通过会用到自觉父相的定位,导致back后退图片,在底下无法点到。记得给后退图标的元素,加相对定位!

  这就是为什么,无法调用api.closeWin关闭窗口的原因。

17 在使用api.execScript方法时,需要注意的是,当参数数据为复杂数据类型时,如果不转化为jSON类型的话,会报语法错误。其用法类似于JSONP,通过调用

  函数,实参传递给形参得方式,在另外一个页面拿到当前页面的数据。注意,外层引号为单引,避免与JSON数据类型双引号冲突。

18  apicloud打包IOS和Android 是有兼容性问题的,对于键盘 弹起判断的api只能够在config.xml文件中配置,并且无法作用于安卓,安卓可以自适应。且重点来了

z-index 属性,在 苹果中如果使用负值,IOS是不支持的。Android的absolute 在IOS中如果父元素使用了flex布局,也是无效的。

apicloud踩坑集锦的更多相关文章

  1. Spring boot应用踩坑集锦

    Spring boot应用踩坑集锦 spring boot是spring的一种开发套件,是spring cloud的基础框架,要学习spring cloud微服务是绕不开的,遇到一些踩坑问题在这里记录 ...

  2. linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三)

    linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三) 安装PHP 1.yum方式安装PHP方法同安装apache一样传送门:linux cent ...

  3. linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦

    linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(一) 一.Linux下安装MySQL 1.下载 下载地址:http://dev.mysql.co ...

  4. linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(二)

    linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(二) 安装apache web容器 . yum方式安装apache 注意apache在linux ...

  5. centos 踩坑集锦

    定时任务 top 命令添加定时任务无效 我通过以下命令获取总进程数与僵尸进程数 vim procs.sh procs_total=`/bin/top -n 1|grep Tasks|sed 's/,/ ...

  6. Xamarin.Forms踩坑集锦(持续更新)

    1.ImageButton控件 问题:ImageButton在切换图片的时候,图片大小会改变. Github Issue:ImageButton changes image size · Issue ...

  7. hyperledger-fabric环境快速搭建踩坑集锦(实用)

    安装docker 及 docker-compose 安装docker没什么好说的,一部分教程都给出了指令,在这里就不谈了. docker-compose不同的教程给出了不同的方法,在这里介绍一种极为快 ...

  8. centos7使用Minikube“快速搭建“出Kubernetes本地实验环境(踩坑集锦及解决方案)

    先决条件(先假设你做完这两步骤) 检查Linux是否支持虚拟化,验证输出是否为非空如何开启虚拟化 grep -E --color 'vmx|svm' /proc/cpuinfo 安装 kubectl ...

  9. 【深度学习 论文篇 03-2】Pytorch搭建SSD模型踩坑集锦

    论文地址:https://arxiv.org/abs/1512.02325 源码地址:http://github.com/amdegroot/ssd.pytorch 环境1:torch1.9.0+CP ...

随机推荐

  1. Wannafly模拟赛2 B river(拉格朗日乘数法)

    题目 https://www.nowcoder.com/acm/contest/4/B题意 有n条南北流向的河并列排着,水流速度是v,现在你需要从西岸游到东岸,总共T个时间,你的游泳速度是u,问东岸的 ...

  2. 实例 tar备份以日期命名

    tar备份以日期命名****************************************************************************************#v ...

  3. 畅通project续

    Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) ...

  4. RGB中的颜色的设置

    用来表示一个 RGB 颜色值. 语法 RGB(red, green, blue) RGB 函数的语法含有以下这些命名参数: 部分 描述 red 必要参数:Variant (Integer).数值范围从 ...

  5. APUE 线程 - 程序清单

    APUE 线程 - 程序清单 程序清单11-1 打印线程ID #include "util.h" #include<pthread.h> pthread_t ntid; ...

  6. Ubuntu14.04 64bit下Caffe + CUDA 6.5安装详细步骤

    不多说,直接上干货! 笔者花了很长时间才装完,主要是cuda安装和opencv安装比较费劲,cuda找不到32位的安装包只好重装64位的ubuntu系统,opencv 也是尝试了很久才解决,这里建议用 ...

  7. iOS视频流开发(2) — 视频播放

    iOS视频流开发(2) — 视频播放  承上篇,本篇文章主要介绍iOS视频播放需要用到的类.以及他们的使用场景和开发中遇到的问题. MPMoviePlayerViewController MP简介 i ...

  8. redirect和rewrite

    1 服务器端重定向 客户端想要访问的内容不在该服务器上,该服务器自己去另外的服务器请求到该内容,然后还是由该服务器将内容返回给客户端.称为rewrite. 2 客户端重定向 客户端想要访问的内容不在该 ...

  9. MySQL 5.7 Keywords and Reserved Words

    https://dev.mysql.com/doc/refman/5.7/en/keywords.html#keywords-5-7-detailed-T

  10. atom及其插件activate-power-mode下载安装

    Atom是Github推出的一个文本编辑器,其中包含很多插件可以自行下载安装,其中一个最近比较火的就是插件activate-power-mode,可以实现打字屏振效果, 打字带特效哦,所以最近就尝试安 ...