APICloud框架——总结一下最近开发APP遇到的一些问题 (二)
高度自适应
flex布局 允许子元素伸缩
手机号正则
function checkPhone(data){
if(!(/^1[34578]\d{9}$/.test(data))){
alert("手机号码有误,请重填");
return false;
}
}
function checkTel(data){
if(!/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(data)){
alert('固定电话有误,请重填');
return false;
}
}
db模块执行sql语句
一句一句执行,不能以;号隔开,否则后面的会不执行
vscode汉化
快捷键F1, 输入Configure Language 回车, 把en改成zh-CN, 保存, 重启vscode.
格式化时间
new Date().toISOString().match(/(\d{4}-\d{2}-\d{2})/)[1];
创建数据库操作
- 创建数据库
DROP TABLE IF EXISTS addressList; CREATE TABLE addressList(user_id int)
// 如果有addressList这个表就不执行新建命令
- 设置唯一索引
CREATE UNIQUE INDEX IF NOT EXISTS user_id_idx ON addressList (user_id)
// 在addresslist表中的user_id这个列设置唯一索引user_id_idx
IOS系统下输入框字体数量
使用onkeup事件有BUG, 如果点击键盘上面的文字输入到输入框,onkeyup不会触发,统计不了字体数量
使用oninput这个事件可以解决这个问题
android和ios行高不兼容
使用js判断 android比ios大9px
去掉input[type=number]的箭头
-webkit-appearance:none
git
在使用git的时候,每次执行
#git add *
都会提示这样一个警告消息:
warning: LF will be replaced by CRLF in XXXXXXXXXXXXXX.
虽然说没有什么影响吧。
不过就是觉得太碍眼了,
按照这样设置就没有问题了:
git config core.autocrlf false
// 禁止自动转换
这样设置git的配置后在执行add操作就没有问题了。
删除指定字符串
把指定字符串替换成空
str = str.replace('a','')
查找指定字符串是否含有某个子字符串
str.indexOf('aa') == -1
不含有指定字符串
str.indexOf('aa') >=0
含有
slice和splice
slice(start,end);剪切数组
splice(start, howmany, item1, ..., itemX); 方法用于插入、删除或替换数组的元素。
// start 开始插入/删除的位置
// howmany 插入/删除几项,必须是数字
// item1, ..., itemX 插入的内容, 不传的时候为删除
listContact模块在小米5s下的bug
每个页面第一次打开listContact列表会出现点击返回的index不正确, 右边字母导航也会出现重复
解决方法, 在打开正式有数据的列表之前打开一个空的列表,然后立马关闭
listContact.open({
x: -1000,
y: -1000,
w: 5,
h: 5,
data: [],
fixedOn: api.frameName
},function(ret,err){
})
listContact.close();
listContact.open({
// 有数据的列表
})
安卓下第二个bug
- 设置选中的项, 安卓不起作用
解决办法: 在设置数据源的时候, 处理以选择数据
清除角标
api.setAppIconBadge({
badge: 1
});
// 为0时表示清除
css三角形带边框
原理: 写两个三角形, 一个覆盖另一个, 错开一个像素
p:after {
content: "";
display: inline-block;
width: 0;
height: 0;
border-top: .15rem solid transparent;
border-right: .22rem solid #fff;
border-bottom: .15rem solid transparent;
position: absolute;
top: .25rem;
left: -.20rem;
}
p:before {
content: "";
display: inline-block;
width: 0;
height: 0;
border-top: .15rem solid transparent;
border-right: .22rem solid #E3E3E3;
border-bottom: .15rem solid transparent;
position: absolute;
top: .25rem;
left: -.22rem;
}
Deferred long-running timer task的问题
Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343. at frame1.html : 0
延时函数使用不当
ios下创建时间对象
// 处理时间显示
function initTime(time) {
var timeRep = time;
time=time.replace(/-/g,':').replace(' ',':');
time=time.split(':');
var nowTime = new Date();
var pageTime = new Date(time[0],(time[1]-1),time[2],time[3],time[4],time[5]);
if ((pageTime.getDate() != nowTime.getDate()) || (pageTime.getFullYear() != nowTime.getFullYear()) || ((pageTime.getMonth()+1) != (nowTime.getMonth()+1))) {
// 不是今天
return timeRep;
} else {
// 今天
if (nowTime.getHours() != pageTime.getHours()) {
return nowTime.getHours() - pageTime.getHours()+ '小时之前'
} else {
return nowTime.getMinutes() - pageTime.getMinutes() + '分钟之前'
}
}
}
长按事件
var timeOutEvent=0;//定时器
//开始按
function gtouchstart(ele){
var e = window.event
var x = e.touches[0].pageX,y=e.touches[0].pageY
timeOutEvent = setTimeout("longPress("+x+","+y+")",500);//这里设置定时器,定义长按500毫秒触发长按事件,时间可以自己改,个人感觉500毫秒非常合适
return false;
};
//手释放,如果在500毫秒内就释放,则取消长按事件,此时可以执行onclick应该执行的事件
function gtouchend(){
clearTimeout(timeOutEvent);//清除定时器
if(timeOutEvent!=0){
//这里写要执行的内容(尤如onclick事件)
}
return false;
};
//如果手指有移动,则取消所有事件,此时说明用户只是要移动而不是长按
function gtouchmove(){
clearTimeout(timeOutEvent);//清除定时器
timeOutEvent = 0;
};
//真正长按后应该执行的内容
function longPress(x,y){
timeOutEvent = 0;
$api.css($api.dom('.shadow'), 'display:inline-block;top:' + y + 'px;left:' + x + 'px;');
//执行长按要执行的内容,如弹出菜单
console.log("长按事件触发发");
}
两次往数据库插入同一条数据
- 首先查询数据所在的行(需要有一个唯一索引)
- 如果有数据就更新数据
UPDATE 表名 SET 列名 = 数据,列2 = 数据2 WHERE 唯一索引 = 索引
- 没有该数据就插入
INSERT OR REPLACE INTO 表名(列名1, 列名2, 列名3, 列名14) VALUES (值1, 值2 ...)
APICloud框架——总结一下最近开发APP遇到的一些问题 (二)的更多相关文章
- APICloud框架——总结一下最近开发APP遇到的一些问题
距离上一次发文都过去十天了, 下班回来懒的就想睡觉, 今天520一个重要的节日, 恩爱已经秀完, 该干点事情了!! 总结一下最近开发遇到的一些问题, 以及解决方案 纯css三角形 /* 没有哪个方向的 ...
- APICloud框架——总结一下最近开发APP遇到的一些问题 (三)
ajax报错 Uncaught DOMException: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 需要在服务器环境下 ...
- 前端开发app
1.如果是 Angular 那就选 Ionic (一对好 CP) 2.如果是 Vue 那就选 Vux (基于 WeUI)3.如果是 jQuery 那就选 Framework7 (iOS 和 Andro ...
- APICloud开发App总结(一)
apiCloud app 开发是最近一两年刚刚兴起的一种混合开发方式.常用的模块以原生方式开发好,然后用js进行粘合.组织,完成整个的app的逻辑.这种开发方式极大的提高了软件模块的复用率,加快了ap ...
- APICloud:轻松6步完成App软件开发
现如今,谁不知道App绝对就是OUT,谁不用App简直没法过日子!但是说到App软件开发,不懂编程,不懂技术的人就一脸懵圈.在门外汉来看,App软件开发是一件非常困难的事情,然而APICloud却说, ...
- unity3d开发app的框架
unity3d开发app的框架,开源地址 https://coding.net/u/liuhaili/p/U3DApp/git 希望能和有相同兴趣的朋友一起完善 打开Scene下的MainUI场景 目 ...
- 使用mui框架开发App,当input获取焦点时,键盘弹出,底部导航栏上升。
转自 https://blog.csdn.net/elementFei/article/details/72917393 感谢 问题: 使用mui框架开发App,当input获取焦点时,键盘弹出,底部 ...
- H5开发APP考题和答案
{ "last_updated": { "$date": 1544276670569 }, "page_count": 1, "a ...
- 【初探IONIC】不会Native可不可以开发APP?
前言 Hybrid技术流行已经有一段日子了,楼主的关注点也一直围绕着移动端围绕着Hybrid相关展开,Hybrid已经是大大提升开发效率的开发方式了,但是仍然需要至少一个IOS与Andriod,那么可 ...
随机推荐
- python作业习题集锦
1. 登录作业: 写一个登录程序,登录成功之后,提示XXX欢迎登录,登录失败次数是3次,要校验一下输入为空的情况 for i in range(3): username=input('username ...
- .NET Core 通过 Ef Core 操作 Mysql
1.运行环境 开发工具:Visual Studio 2017 JDK版本:.NET Core 2.0 项目管理工具:nuget 2.GITHUB地址 https://github.com/nbfujx ...
- shell脚本学习 (10) 从结构化文本提取数据
1提取/ 后的数据 sed -e 's=/.*==' do.txt 2 sed -e 's=/.*=='\ -e 's=^\([^:]*\):\(.*\) \([^ ]*\)=\1:\3, \2=' ...
- 10.18.1 linux文本编辑器vim
vi和vim的区别 编辑一个文本时,vi不会显示颜色,而vim会显示颜色,vi 有点类似windows记事本,简单,那么就是vim复杂编辑器,功能复杂,高亮,自动缩进(写shell/python脚本用 ...
- KVM(多电脑切换器)
KVM:Keyboard Video Mouse的缩写.KVM 交换机通过直接连接键盘.视频和鼠标 (KVM) 端口,让您能够访问和控制计算机.KVM 技术无需目标服务器修改软件.这就意味着可以在 W ...
- linux6.5 RPM方式安装 mysql5.6
步骤一.检查下linux是不是已经安装了MySQL # rpm -qa|grep mysql mysql-libs-5.1.71-1.el6.x86_64 # rpm -e --nodeps mysq ...
- 转载:VScode 好用插件集合
--------------------- 作者:JayveeWong 来源:CSDN 原文:https://blog.csdn.net/weixin_42776111/article/details ...
- python数据分析中常用的库
Python是数据处理常用工具,可以处理数量级从几K至几T不等的数据,具有较高的开发效率和可维护性,还具有较强的通用性和跨平台性,这里就为大家分享几个不错的数据分析工具,需要的朋友可以参考下 Pyth ...
- Locust 源码理解与分析
前言 相信很多小伙伴会选择Locust作为压测工具辅助测试,本文从Locust源码开始分析它的优劣,结论在最后,最终我还是选择了Jmeter 主要分析了Locust源码的两个文件:main.py 和 ...
- 测开之路三十二:Flask基础之错误与重定向
错误处理,框架默认的错误为:not Found 可以捕获,并自定义 准备一张自定义图片,放在static文件夹下,并在template下创建一个html文件,引用该图片 捕获404状态,返回自定义页面 ...