安卓Back键的处理·基本+高级篇



  • @cnsnake11

    比如B界面有个pressBack()的方法
    这个时候我从A界面push到B界面 如下:
    nav.push({
    component:B界面,
    handleBack:() =>{

              }
            }
          });
    

    这个时候handleBack里如何放置B界面的pressBack方法并能保证这个pressBack方法能获得到B界面的this'



  • @DTT 这种情况就不能用nav.push里的route来注册了,因为push的时候B界面还未初始化

    在B界面的初始化方法里,使用如下代码获得当前页面的route对象

    let routes = nav.getCurrentRoutes(); //nav是导航器对象
    let lastRoute = routes[routes.length - 1]; // 当前页面对应的route对象
    

    然后在这样注册即可: lastRoute. handleBack = () => {alert('在B注册的handleBack')}



  • @cnsnake11
    非常感谢 问题已解决



  • 此回复已被删除!


  • @tdzl2003 你好 请问 BackAndroid.exitApp() 这个是直接退出应用 而不是后台运行
    如何在adnroid下后台运行呢



  • @woainbadc 这个功能原生开发都没有办法做到。你只能选择退出Activity,如果有需要后台执行的任务,通过编写Service来实现。



  • @tdzl2003 说:

    this.lastBackPressed

    这个是需要自己定义吗,直接用报undefined is not an object(evaluating 'this.lastBackPressed')



  • @jin 这是因为你绑定回调的时候没有绑定this,具体参考这篇帖子的 把方法作为回调传递 一节



  • lastBackPressed你这个这个函数是什么内容啊?能不能写出来啊,不然报错啊!


登录后回复