物理返回键事件处理

物理返回键

1)app内:
在app1上,H5和app约定好在window对象上定义一个全局的方法,比如window.back方法,H5会在路由定义位置,定义该方法。当触发物理返回键的时候,app会监听双方定义好的方法back,如果有定义该方法,则执行方法

2)非app内,比如浏览器,微信等环境,使用popstate方法监听 
这里处理的时候,需要区分是路由触发的还是物理触发的,路由触发popostate()方法,则不执行物理事件处理(由于router.replace()和router.push()方法也会触发popstate()方法),所以需要用一个标识,表示是路由触发的popstate方法,路由触发的就不调用处理物理键返回的方法,物理键触发的popstate方法,才调用物理键返回方法

3)sdk方式接入app内
也是H5和app双方约定好的相应方法


app1的物理返回键的方法:
window.back(适用ios  android)返回值说明:
return 0: 关闭当前web view
return 1:  正常返回上一页
return 2:  什么都不做

插件形式,E企宝物理返回键的方法:
window.onBackForward(适用android. iOS)返回值说明:
return 0: 什么都不做
return 1: 正常返回上一页

 

在router/index.js里面定义了router对象,然后通过该对象可以获取到的信息
let history = router.history
history = {
   base: ‘’,
   current: {},  — 当前路由对象
   cb: fn,
   errorCbs: [],
   router: {}
}

当前路由对象的信息:
current = {
     fullPath: ‘/home’,
     name: ‘home’,
     path: ‘/home’
     hash: ‘’,
     matched: [],
     meta: {}. // 在路由中定义的字段
     params: {},  // 路由跳转前自定义的属性
     query: {}    // 路由跳转前自定义的属性
}
有用的信息是current里面的params.   query里面带的自定义属性

current和beforeRouteEnter(to, from, next)里面的to,from对象的字段是一样的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值