//可以关闭name为"root"之前开启的所有页面,并且在点返回的时候,不会回到之前开启的前一个页面
api.closeToWin({
name: 'root'
});
//Window 显示到屏幕的事件,字符串类型。收到 viewappear 事件回调,即标识当前 Window 已经动画结束,并且完全显示到屏幕上。该事件的作用对象为 Window,Frame 的显示不会收到事件
//官方这样解释,我在这进行我自己的解释。在a页面有写这个api事件,a为父页面,b为子页面,b页面返回到a页面(api.historyBack())操作时,会触发监听的事件,弹出“window显示”,可以进行页面的数据刷新操作
api.addEventListener({
name:'viewappear'
}, function(ret, err){
alert('window显示');
});
//也可以使用api.execScript()进行数据刷新操作,funcGoto()为封装的数据请求方法
//在名为winName的window中执行jsfun脚本
var jsfun = 'funcGoto();';
api.execScript({
name: 'winName',
script: jsfun
});
APICloud二维码模块:FNScanner模块是一个二维码/条形码扫描器
在使用APICloud的时候,需要可用到扫一扫功能,官方提供了一个二维码模块,open、openScanner、openView都是打开二维码扫描器,用open来做示范
var FNScanner = api.require('FNScanner'); //引入模块
//打开扫一扫进行扫码
FNScanner.open({}, function(ret, err) {
alert(JSON.stringify(ret));
if (ret.eventType == 'success') {//扫描成功
//解析二维码
alert("1" + JSON.stringify(ret));
}
});
//encodeImg:将字符串生成二维码/条形码图片。这个我是用来先生成二维码图,然后拿来测试扫一扫的
var FNScanner = api.require('FNScanner');//引入模块
let obj= {name: '123456', count: 12}//这里使用一个对象做例子
let str= JSON.stringify(obj)//进行转义成json值
FNScanner.encodeImg({
content: str,//需要生成的参数
saveToAlbum: true
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
//生成一样二维码,解析二维码,如果要拿到content值,就要用到JSON.parse(ret.content).name
FNScanner.open({}, function(ret, err) {
if (ret.eventType == 'success') {//扫描成功
//解析二维码
console.log(JSON.parse(ret.content).name);//输出123456
}
});
要注意下:按照上面写的话,那么第一个alert()会被弹出3次(if里面的不写),这个估计是官网的原因吧,不太懂为什么。要写个if判断,判断如果ret.eventType == ‘success’,才会判断能扫到结果,这样才能使用二维码扫描器(意思就是不管弹出多少个alert,只要有一次ret.eventType == ‘success’,就可以成功获取要数据)
$api.fixStatusBar()
var header = document.querySelector('#header');
$api.fixStatusBar(header);//获取id为header这个元素与状态栏的高
ps:用模拟器截图的状态栏是白色的,所以看不见
最后,如果我的笔记对您有帮助,请给我一个赞~ 谢谢!