业务场景:
列表页打开详情页,在详情页面返回刷新,调用列表页刷新函数,调用不被执行。当使用编辑工具编辑修改后,页面被同步至真机,之前未调用成功的函数依次又被调用了。
这是列表页面的返回刷新函数
/**
* 返回刷新页面
*/
window.addEventListener('backrefresh', function(event) {
news.items = [];
console.log('hello ! in to backrefresh');
var userid = app.getState().usrId;
if(!userid) {
mui.toast('请先登录!');
var w = plus.webview.create("../login.html", "login");
plus.webview.show(w, "slide-in-bottom", 300);
return;
}
// data.type = '2'; //1-上拉刷新 2-下拉刷新
var flag = '0'; //第一次请求标识
// data.qid = '';
var data = {
userid: userid,
qid: '',
type: '2',
slstate: ''
}
console.log('data:' + JSON.stringify(data));
plus.nativeUI.showWaiting();
mui.ajax(url, {
data: data,
dataType: 'json', //服务器返回json格式数据
type: 'get', //HTTP请求类型
timeout: 3000, //超时时间设置为10秒;
success: function(rsp) {
console.log(JSON.stringify(rsp));
if(rsp && rsp.length > 0) {
lastId = rsp[0].id; //保存最新消息的id,方便下拉刷新时使用
minId = rsp[rsp.length - 1].id;
news.items = convert(rsp).concat(news.items);
if(rsp.length < 10) {
// mui('#list').pullRefresh().endPulldownToRefresh(true);
mui('body').pullRefresh().endPulldownToRefresh(true);
} else {
// mui('#list').pullRefresh().endPulldownToRefresh(false);
mui('body').pullRefresh().endPulldownToRefresh(false);
}
}
if(rsp.length > 0) {
news.state = '2';
} else {
if(flag == '1') {
news.state = '0';
}
}
},
error: function(xhr, type, errorThrown) {
//异常处理;
console.log(type);
console.log(JSON.stringify(xhr));
console.log(JSON.stringify(errorThrown));
},
complete: function() {
plus.nativeUI.closeWaiting();
// mui.scrollTo(0, 0, 100);
}
});
});
这是详情页的返回刷新函数(由于一个详情页对应多个列表页面,所以根据打开详情页传递的父级页面标识,获取webview,当webview不存在时,再次创建webview)
console.log('from:'+vid);
var view = plus.webview.getWebviewById(vid);
if(null == view){
view = plus.webview.create('页面','页面ID');
}
console.log('from:'+JSON.stringify(view));
mui.fire(view,'backrefresh');
view.reload();
return true;
0 个回复