移动端物理回退键监听机制,由于在移动端,android手机的物理回退键和微信浏览器左上角回退按钮的存在,当页面中有弹窗出现时,用户点击了回退键, 默认是回退到了上一个页面,并不是用户想要的关闭弹框,由于这个缺陷的存在,cmp提供一套回退按钮监听机制,使各模块开发处理该问题时 统一处理,并达到,低耦合状态,其机制为:
当进入回退按钮机制时,全部模块或应用需要对回退按钮进行监听时,进入一个堆栈状态,即:先进后出原则,先被放入堆栈中的回退方法,最后被执行, 各模块开发统一在这个堆栈里操作,进出栈由开发者自行控制,各模块开发,只需要把自己的堆栈逻辑处理好,cmp进行统一管理

  • cmp壳端:监听android物理回退键
  • 微信端:监听android物理回退键+微信浏览器左上角自带回退按钮android和ios

方法

backbutton

backbutton ()

想要进入回退按钮监听机制,需要调这个函数,兼容了cmp端和微信端

示例:

<script>
    cmp.backbutton();
</script>

pop

pop ()

开发者者调用此方法将需要监听回退键执行的函数取出堆栈,并将这个栈顶函数进行trigger执行
其取出的即为堆栈中的栈顶,一般用在:
如一个弹框,有一个关闭按钮,该关闭按钮的事件绑定就应该将该的主动调用的事件,将堆栈中的栈顶退出,避免已经关闭了该弹框,栈中的函数还存在,导致和其他模块的栈冲突

示例:

<script>
    cmp.backbutton.pop();
</script>

push

push
(
  • func
)

开发者者调用此方法将需要监听回退键执行的函数放入堆栈

参数:

名称类型标识描述
func Function 必选

需要回退按钮执行的函数

示例:

<script>
    var closeSelectOrg = function(){//定义关闭弹层的函数
         cmp.backbutton.pop(); //关闭函数中要调用弹层出栈函数
         //关闭的业务逻辑
    }
    cmp.backbutton.push(closeSelectOrg);//弹层入栈
</script>
Top