1.安卓滑动关闭窗口
在IOS设备上可以通过滑动来关闭win,在安卓默认是不可以。细看下文档其实也很的简单,监听事件里面的swiperight:
如果一个窗口是先打开win再嵌套frame的打开的方法如下
apiready = function(){
api.addEventListener({
name:'swiperight'
},function(ret,err){
api.closeWin({
name: 'win窗口name'
});
})
};
如果是直接用win打开的窗口
apiready = function(){
api.addEventListener({
name:'swiperight'
},function(ret,err){
api.closeWin({});
})
};
2.安卓点击两次退出应用
//两次退出
var first = null;
function back(){
api.addEventListener({
name:
'keyback'
}, function(ret, err){
if
(!first) {
first = new Date().getTime();
api.toast({
msg: '再按一次退出',
duration:1500,
location: 'bottom'
});
setTimeout(function() {
first = null;
}, 1000);
} else {
if (new Date().getTime() - first < 1000) {
api.closeWidget({
silent:true
});
}
}
});
}
把back方法放在apiready里面就OK了
3.安全保存你的各种key
在app中,有时我们会使用到一些第三方的key,如果让这些KEY更安全呢,其实官方也有提高,很多朋友却没有留意
在res文件夹中新建一个key.xml
<?xml version="1.0"
encoding="UTF-8"?>
<security>
<item name="key0"
value="value0"/>
<item name="key1"
value="value1"/>
<item name="key2" value="value2"/>
<item name="key3"
value="value3"/>
</security>
然后通过
api.loadSecureValue({
key:'key名'
}, function(ret, err) {
var value = ret.value;
});
来调用。云编译的时候会自动加密的,不过在真机测试的时候是没有用的,需要云编译才可以。在打包的时候可以统一配置下
4。利用本地文件存储实现秒开和离线浏览
在api对象里面有两个方法readFile和writeFile,我们可以利用这两个来搞一下,而且还会对图片自动缓存的
通常我们的列表页数据是json的,我们可以对这个json数据循环下
function writeFile(json){
var cacheDir = api.cacheDir;
for(var i=0;i<json.length;i++)
{
var id =
json.id;//你的内容id
var data =
json;//内存数据
api.writeFile({
path: cacheDir+'/'+id+'.json',
data: JSON.stringify(data)
},
function(ret, err){
})
}
}
注意要通过JSON.stringify转换下格式,否在在IOS上写入不成功
然后在打开内容页的时候先看下有没有对应id文件存在
function readFile(){
var cacheDir = api.cacheDir;
api.readFile({
path:
cacheDir+'/'+id+'.json'
}, function(ret, err){
if(ret.status){
var jsonData = JSON.parse(ret.data);
} else{
//从服务器读取
}
});
}
还要注意,再次转换下数据格式
5.打开页面有闪动?那让他闪的个性点
很多开发者在开发的时候会遇到页面打开闪动的问题,不管是从服务器读取还是从本地缓存读取都有可能会闪动。既然解决比较麻烦,我们就利用CSS3动画,让他闪的个性点。很简单,给元素ID加个fade效果
比如你的页面内容全部在<div
id="wrap"></div>里面。那么我们就给wrap弄个CSS动画,渐入效果,下面是css代码
#wrap {-webkit-animation: fadeIn .5s ease
both;animation: fadeIn .5s ease both;}
@-webkit-keyframes fadeIn {
from { opacity: 0.3; }
to { }
}
@keyframes fadeIn {
from { opacity: 0.3; }
to { }
}
马上去体验下吧。
6.安卓最小化你的APP
在安卓开发的时候我们会使用最小化应用,不让其退出,其实官方已经提供了这个api方法,只是可能隐蔽点不容易发现
api.toLauncher();
参考文档 http://docs.apicloud.com/%E7%AB%AFAPI/api#70
7.安卓上巧实现日期加时间的选择
在使用openPicker时我们知道安卓设备是不支持同时选择日期加时间的,也就是date_time属性。又不想使用插件,也不想选择完日期后在点击按钮选择时间,那么我们将openPicker稍微改一下实现时间+日期的选择
思路:判断如果是安卓设备,则先openPicker打开时间选择,时间选择完成后在openPicker一下选择日期。
if(api.systemType=='android'){
api.openPicker({
type:
'date',
title:'选择时间'
},function(ret,err){
var year =
ret.year;
var month
= ret.month;
var day =
ret.day;
//这是选择的是日期
var value1
= year+'-'+month+'-'+day;
//选择时间
api.openPicker({
type: 'time',
title:'选择时间'
},function(ret,err){
var hour = ret.hour;
var minute = ret.minute;
//选择的时间
var
value2 = hour+':'+minute;
//组装一下
alert(''+value1+' '+value2+'');
});
});
}
8.IDE里面让代码自动换行
很多小伙伴在问我想让代码自动换行,不想看到长长的水平滚动条,截图来说一下:
依次打开---窗口---->首选项----->Aptana Studio--->Editors--->选中 Enable word wrap ,点击确定并重启IDE
原文链接: http://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=7152