在应用MUI架构的情况下,大家常常会用到1个头顶部带有.mui-action-back的class
<header class="mui-bar mui-bar-nav"> <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a> <h1 class="mui-title">货品查寻</h1> </header>
点一下该头顶部的回到标志,则会回到到上1个网页页面,
//下列是mui.js中的源代码,能够看到,在点一下回到的情况下,內部做了下列的实际操作 //$.hook={}是专业用于纪录访问的历史时间的。 $.back = function() { if (typeof $.options.beforeback === 'function') { if ($.options.beforeback() === false) { return; } } $.doAction('backs'); }; $.doAction = function(type, callback) {//回到上1个纪录 if ($.isFunction(callback)) { //特定了callback $.each($.hooks[type], callback); } else { //未特定callback,立即实行 $.each($.hooks[type], function(index, hook) { return !hook.handle(); }); } }; $.addAction = function(type, hook) {//加上历史时间纪录 var hooks = $.hooks[type]; if (!hooks) { hooks = []; } hook.index = hook.index || 1000; hooks.push(hook); hooks.sort(function(a, b) { return a.index - b.index; }); $.hooks[type] = hooks; return $.hooks[type]; };
当大家把H5封裝成APP时,大家用到的5+插口存在webview这1个定义,就是1个对话框。
而一开始我则沒有特地去区别这两个定义,因此有时新建对话框开启网页页面,又或有时立即
根据网站地址来自动跳转例如:location.href。
这样就会致使,在监视手机上的back功能键时,出現了1种状况,其情景大概是下面这样:
1、开启手机软件进到首页(main.html=>HBuilder[webview])【前者表明URL的当地浏览相对路径,后者是对话框webview的ID】。
2、根据location.href自动跳转到登陆页面,而并不是根据建立webview开启。
3、登录落后入作用网页页面,再按回到,又回到到了登陆网页页面。预期是期待,我登陆完后,假如点一下手机上的回到键,立即撤出的。为此特地掌握了MUI的返回涵数,大家能够根据复写这个方式来完成
在必须监视的网页页面:
mui.back=function(){ //写你监视回到键后必须做的实际操作
可是,假如還是依照以前网页页面自动跳转和建立窗体两种方式混和应用会出現出乎意料的結果,也便是mui.back只能在通道文档被监视,在别的网页页面或窗体做的监视都不容易被开启,所有被通道文档的监视恶性事件mui.back捕捉了,只会实行通道文档的监视业务流程逻辑性,这样就致使了,在不自定回到恶性事件的情况下,大家无法防止回到上1个网页页面的难堪状况:例如返回到了登陆网页页面,而自定回到恶性事件,发现全部的恶性事件都被通道文档监视了。这代表着别的网页页面写mui.back=function(){}是沒有实际意义的。
而将全部的自动跳转网页页面都做为窗体开启,则不容易出現以上难题。每一个对话框都能一切正常监视mui.back自定的function
以上便是本文的所有內容,期待对大伙儿的学习培训有一定的协助,也期待大伙儿多多适用脚本制作之家。