遇到如下需求:需要在一个流程中的每一步点击返回时回到主页,主页点击进入流程时进入上一次流程中的步骤页,每步骤页点击下一页去到下一个步骤页,有另外的按钮可以回到上一页。

首先封装了跳转页面函数:

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多页面情况下返回主页相关推荐

  1. java responsebody_java – 在一种情况下返回@ResponseBody,在另一种情况下返回ModelAndView...

    我有一个弹簧控制器方法.它旨在以编程方式注册用户(通过产品内其他系统的单一登录流程).它的工作原理是获取用户数据,验证它,创建用户帐户(如果不存在),将共享令牌传送回另一个系统,然后验证用户.正在进行 ...

  2. 微信小程序返回上一页 没有上一页的情况下返回首页

    goback: function (e) {let pages = getCurrentPages();if (pages.length > 1) {wx.navigateBack({//返回d ...

  3. php 判断用户是否刷新,如何在php和ajax中创建一个注册页面,它会在不刷新页面的情况下检查某个用户名是否已经存在? - php...

    我有一个register.php文件,它为我的网站创建了新用户.但是,如果某人使用已经存在的用户名,则仅当他输入整个表单并提交时才会生成错误.如何实现Ajax / Jquery以在不提交表单的情况下显 ...

  4. 进一步封装axios并调用其读取数据(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)

    注意!!!(修改于2020年7月18日) 在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据 报错截图如下 报错内容: {&quo ...

  5. m_Orchestrate learning system---九、在无法保证是否有图片的情况下,如何保证页面格式...

    m_Orchestrate learning system---九.在无法保证是否有图片的情况下,如何保证页面格式 一.总结 一句话总结:都配上默认缩略图就可以解决了 1.如何获取页面get方式传过来 ...

  6. 微信小程序页面搜索框查询(无后台接口情况下)

    微信小程序页面搜索框查询(无后台接口情况下) 效果图: wxml <view class="container"><view class="goodsl ...

  7. 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值

    recv: 阻塞与非阻塞recv返回值没有区分,都是 <0:出错,=0:连接关闭,>0接收到数据大小, 特别:非阻塞模式下返回 值 <0时并且(errno == EINTR || e ...

  8. [html] 页面布局时你使用最多的标签是什么?div吗?在什么情况下会使用到div?

    [html] 页面布局时你使用最多的标签是什么?div吗?在什么情况下会使用到div? 页面的的整体布局使用<header> <main> <aside> < ...

  9. gridview databind 会导致页面刷新马_Innodb批量页面刷盘情况下的quot;两次写quot;

    //Innodb批量页面刷盘情况下的"两次写"// 之前的文章中,我们介绍过innodb的两次写特性,这里给出链接: InnoDB的两次写特性 今天我们完善一下这部分的内容. 我们 ...

最新文章

  1. dtm文件生成等高线 lisp_DEM、DSM和DTM的区别
  2. Lua 语言中的点、冒号与self
  3. PHP函数——urlencode() 函数
  4. 2019,燃烧的中国开源年
  5. 应用时间序列分析(王燕)学习笔记1
  6. 报童模型(2)--经济学含义和应用
  7. 神舟微型计算机登录密码忘记,win10开机密码忘记按f2(win10忘记密码强制重置)
  8. 中控考勤机管理员破解/清除/密码/恢复出厂设置方法
  9. JuniperSSG140使用PBR实现双线路接入
  10. android 强制关闭键盘,Android关闭输入软键盘无效的问题
  11. Linux内核源码——通知链(notifier chain)
  12. 串口通信Serial
  13. 10.敏捷估计与规划——Financial Prioritization笔记
  14. 大数据优化服务 黑科技创造价值 智慧旅游来势猛
  15. 定时器Timer使用
  16. Authentication failed for git
  17. 广州电信高级前端开发工程师笔试题及答案(国企面试题大全)
  18. python3打印99乘法表
  19. maven项目 报错 Lifecycle mapping quot;org.eclipse.m2e.jdt.JarLifecycleMappingquot; is not available.
  20. c语言程序设计库搜索app,C语言编程宝典app

热门文章

  1. 【JavaScript】客户端 Web API
  2. Python 开发环境搭建及预备知识
  3. 了解CPU盒装与散装的区别
  4. 【概率论】边缘分布函数
  5. Dynatrace系列之-排除干扰请求
  6. 微信小程序引入阿里巴巴图标库
  7. 俄罗斯和伊朗:两个国家支持的黑客组织曾经一度交战
  8. Android线程间通信机制
  9. 特别策划:深度解析大学生“白菜价”现状
  10. pygame加载obj 重新绘制