在mui.js中,有这样一段代码,同时定义了$.back,不知道是否定义重复了,或者是应该怎么使用,求教?
{{{
/**
- mui back
- @param {type} $
- @param {type} window
- @returns {undefined}
*/
(function($, window) {
/**- 后退
*/
$.back = function() {
if (window.history.length > 1) {
if (typeof $.options.back === 'function') {
if ($.options.back() !== false) {
window.history.back();
}
} else {
window.history.back();
}
}
};
window.addEventListener('tap', function(e) {
var action = $.targets.action;
if (action && action.classList.contains('mui-action-back')) {
$.back();
}
});
window.addEventListener('swiperight', function(e) {
var detail = e.detail;
if (detail.angle > -15 && detail.angle < 15 && $.options.swipeBack === true) {
$.back();
}
});
- 后退
})(mui, window);
/**
- mui back 5+
- @param {type} $
- @param {type} window
-
@returns {undefined}
*/
(function($, window) {
/**-
后退(5+关闭当前窗口)
*/
$.back = function() {
var isBack = true;
var callback = false;
if (typeof $.options.back === 'function') {
callback = $.options.back();
if (callback === false) {
isBack = false;
}
}
if (!isBack) {
return;
}
if (window.plus) {
var wobj = $.currentWebview;
var parent = wobj.parent();
if (parent) {
wobj = parent;
}
wobj.canBack(function(e) {
//by chb 暂时注释,在碰到类似popover之类的锚点的时候,需多次点击才能返回;
if (e.canBack) { //webview history back
window.history.back();
} else { //webview close or hide
//TODO 会不会存在多层嵌套?如果存在需要递归找到最顶层var opener = wobj.opener(); if (opener) { //by chb 暂不自动处理老页面的隐藏; // var openerParent = opener.parent(); // if (openerParent) { // opener = openerParent; // } if (wobj.preload) { wobj.hide("auto"); } else { //关闭页面时,需要将其打开的所有子页面全部关闭; $.closeAll(wobj); } //TODO 暂时屏蔽父窗口的隐藏与显示,与预加载一起使用时太多bug //opener.show(); } else { //首页不存在opener的情况下,后退实际上应该是退出应用; //这个交给项目具体实现,框架暂不处理; //plus.runtime.quit(); } } });} else if (window.history.length > 1) {
window.history.back();
} else {
window.close();
}
};
$.plusReady(function() {
plus.key.addEventListener('backbutton', function() {
$.back();
}, false);});
-
})(mui, window);
}}}
2 个回复
DCloud_UNI_CHB
第一个mui.back是为将来单独在普通mobile浏览器上运行准备的,第二个mui.back是为客户端准备的(同时包含了普通浏览器);
mui将来可能会针对特定场景发布不同版本的编译包;
hnatao (作者)
明白了