Final
Final
  • 发布:2020-04-11 11:19
  • 更新:2020-04-11 11:19
  • 阅读:622

mui.fire调用function失败

分类:MUI

业务场景:
列表页打开详情页,在详情页面返回刷新,调用列表页刷新函数,调用不被执行。当使用编辑工具编辑修改后,页面被同步至真机,之前未调用成功的函数依次又被调用了。
这是列表页面的返回刷新函数

/**  
             *  返回刷新页面  
             */  
            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;
2020-04-11 11:19 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复