需求: 在一个填写反馈内容的页面,实现当内容为空时,点击物理返回键直接返回;当内容中已有输入内容时,页面弹出提示框,根据用户选择继续留在页面或者返回上一级页面。
思路:在没有重写MUI的返回方法时,点击物理返回键回直接回到上一级页面,不管有没有填写反馈内容。所以,决定重写$.back()方法。
步骤:
1. back()方法:
$.back = function() {
if (typeof $.options.beforeback === 'function') {
if ($.options.beforeback() === false) {
return;
}
}
$.doAction('backs');
};
2. 找到核心返回代码:$.doAction('backs');
3. 在$.back()方法中,添加业务逻辑,比如:
$.back = function() {
if (typeof $.options.beforeback === 'function') {
if ($.options.beforeback() === false) {
return;
}
}
if ( 内容为空 ) {
$.doAction('backs'); // 返回上一级
}else {
$.confirm( //... ); // 弹出确认框
if ( //确认要返回 ) {
$.doAction("backs");
}
}
};
这样,便实现了MUI返回方法对于手机物理返回键的监听和处理。