mui多页面情况下返回主页
遇到如下需求:需要在一个流程中的每一步点击返回时回到主页,主页点击进入流程时进入上一次流程中的步骤页,每步骤页点击下一页去到下一个步骤页,有另外的按钮可以回到上一页。
首先封装了跳转页面函数:
function JumpWithDefalutAni(url, id, extra){mui.openWindow({url:url,id:id,show:{autoShow:true,aniShow:'pop-in'},extras:extra});
}
然后在主页设置ajax对接口进行操作:
mui.ajax( server + 'login/api/certi-comp',{data:{user_token: token,mark: 6,},type : 'post',dataType : 'json',timeout : 10000,success : function(data){// console.log(JSON.stringify(data));/*验证成功*/if(data.code==1){if(data.msg==0){JumpWithDefalutAni('../certification/cert-type.html','cert-type',{});}else if(data.msg==1){JumpWithDefalutAni('../certification/corp-cert2.html','corp-cert2',{corp_name:data.comp_name});}else if(data.msg==2){JumpWithDefalutAni('../certification/corp-cert3.html','corp-cert3',{time:data.time});}}else{openConfirm('../../confirm.html',{type:"alert",main:data.msg});}},error : function(xh, type, errorThrown){mui.toast("请求错误!错误描述:" + type,{ duration: 'long'});}});
每一页的跳转下一页方法中的接口返回成功里加上跳转:
JumpWithDefalutAni('corp-cert2.html','corp-cert2',{corp_name:corp_name.value});
回到上一页由于需要做成弹窗效果,所以就用mui.fire和触发器实现,触发器里接口返回成功里加挑战即可,就不贴出来了。
然后难点是如何直接返回到主页,考虑到流程页有可能是上一页打开的,也有可能是主页直接打开的,所以必须对已打开的页面做判断,才能确定需要关掉哪些页面,一开始我是这么写的:
function exitCert(){plus.webview.getWebviewById('mine.html').reload();var wvs=plus.webview.all();for(var i=0;i<wvs.length;i++){if(wvs[i].id=='corp'){plus.webview.getWebviewById('corp').close();}else if(wvs[i].id=='cert-type'){plus.webview.getWebviewById('cert-type').close();}}plus.webview.getWebviewById('corp-cert2').close();
}
用all得到所有打开的窗口,然后判断是否有之前的步骤页,有就关掉。
后来觉得很麻烦,就想每个步骤执行后就关掉当前页,于是在跳转函数里加上了:
JumpWithDefalutAni('corp-cert2.html','corp-cert2',{corp_name:corp_name.value});
setTimeout("plus.webview.currentWebview.close();",500);
但是他会出现很奇怪的跳转动画,前辈告诉我不要在当前页面关掉自己,在跳转的新页面关闭原页面,于是就改成了:
function plusReady() {if(plus.webview.currentWebview().opener().id != 'mine.html'){setTimeout("plus.webview.currentWebview().opener().close('none');",300);}
}
在页面加载的plusReady函数里判断打开页面id是否为主页id,如果不是就将它关掉,这样每次进入一个新的步骤打开的页面就只剩当前页面和主页,那么返回也就不需要exitCert()函数,直接返回到上一页就可以了。
mui多页面情况下返回主页相关推荐
- java responsebody_java – 在一种情况下返回@ResponseBody,在另一种情况下返回ModelAndView...
我有一个弹簧控制器方法.它旨在以编程方式注册用户(通过产品内其他系统的单一登录流程).它的工作原理是获取用户数据,验证它,创建用户帐户(如果不存在),将共享令牌传送回另一个系统,然后验证用户.正在进行 ...
- 微信小程序返回上一页 没有上一页的情况下返回首页
goback: function (e) {let pages = getCurrentPages();if (pages.length > 1) {wx.navigateBack({//返回d ...
- php 判断用户是否刷新,如何在php和ajax中创建一个注册页面,它会在不刷新页面的情况下检查某个用户名是否已经存在? - php...
我有一个register.php文件,它为我的网站创建了新用户.但是,如果某人使用已经存在的用户名,则仅当他输入整个表单并提交时才会生成错误.如何实现Ajax / Jquery以在不提交表单的情况下显 ...
- 进一步封装axios并调用其读取数据(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)
注意!!!(修改于2020年7月18日) 在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据 报错截图如下 报错内容: {&quo ...
- m_Orchestrate learning system---九、在无法保证是否有图片的情况下,如何保证页面格式...
m_Orchestrate learning system---九.在无法保证是否有图片的情况下,如何保证页面格式 一.总结 一句话总结:都配上默认缩略图就可以解决了 1.如何获取页面get方式传过来 ...
- 微信小程序页面搜索框查询(无后台接口情况下)
微信小程序页面搜索框查询(无后台接口情况下) 效果图: wxml <view class="container"><view class="goodsl ...
- 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
recv: 阻塞与非阻塞recv返回值没有区分,都是 <0:出错,=0:连接关闭,>0接收到数据大小, 特别:非阻塞模式下返回 值 <0时并且(errno == EINTR || e ...
- [html] 页面布局时你使用最多的标签是什么?div吗?在什么情况下会使用到div?
[html] 页面布局时你使用最多的标签是什么?div吗?在什么情况下会使用到div? 页面的的整体布局使用<header> <main> <aside> < ...
- gridview databind 会导致页面刷新马_Innodb批量页面刷盘情况下的quot;两次写quot;
//Innodb批量页面刷盘情况下的"两次写"// 之前的文章中,我们介绍过innodb的两次写特性,这里给出链接: InnoDB的两次写特性 今天我们完善一下这部分的内容. 我们 ...
最新文章
- dtm文件生成等高线 lisp_DEM、DSM和DTM的区别
- Lua 语言中的点、冒号与self
- PHP函数——urlencode() 函数
- 2019,燃烧的中国开源年
- 应用时间序列分析(王燕)学习笔记1
- 报童模型(2)--经济学含义和应用
- 神舟微型计算机登录密码忘记,win10开机密码忘记按f2(win10忘记密码强制重置)
- 中控考勤机管理员破解/清除/密码/恢复出厂设置方法
- JuniperSSG140使用PBR实现双线路接入
- android 强制关闭键盘,Android关闭输入软键盘无效的问题
- Linux内核源码——通知链(notifier chain)
- 串口通信Serial
- 10.敏捷估计与规划——Financial Prioritization笔记
- 大数据优化服务 黑科技创造价值 智慧旅游来势猛
- 定时器Timer使用
- Authentication failed for git
- 广州电信高级前端开发工程师笔试题及答案(国企面试题大全)
- python3打印99乘法表
- maven项目 报错 Lifecycle mapping quot;org.eclipse.m2e.jdt.JarLifecycleMappingquot; is not available.
- c语言程序设计库搜索app,C语言编程宝典app