为了账号安全,请及时绑定邮箱和手机立即绑定

vue单页面应用混合开发手机app遇到的问题?

vue单页面应用混合开发手机app遇到的问题?

九州编程 2019-03-22 18:15:43
在各个子页面中的想要监听手机物理返回键进行指定路由跳转,而不是通过history进行一步步跳转,通过在每个子页面的生命周期mounted上挂载监听方法mounted () {    this.addPopState();},methods: {    addPopState() {        window.addEventListener('popstate',function(){})//popstate事件监听物理返回按键    }}但是出现的问题是,在多个页面中绑定了相同的事件,导致被覆盖掉了,求问有什么好的解决方法?跪谢各位了!!!
查看完整描述

3 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

addEventListener可以多次绑定并不会覆盖上一个事件啊,是否是其他地方影响到了?

像这种事件监听我的做法是在根组件监听然后用$on $emit分发事件

根组件监听并分发


window.addEventListener('popstate', () => {

  this.$root.$emit('popstate')

})

各级子组件的任意位置监听


this.$root.$on('popstate', () => {


})


查看完整回答
反对 回复 2019-04-14
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

难了几天的bug解决了,原因在与混合开发用到cordova原生的按钮,导致在页面触发物理返回键的时候同时也触发了原生的返回键,解决方法就是将原生的返回按钮功能取消,有前端页面进行物理返回键的事件绑定,因此触发返回键的结果就恢复正常了。


document.addEventListener("backbutton", onBackKeyDown, false);


function onBackKeyDown() {

    // Handle the back button

}


查看完整回答
反对 回复 2019-04-14
  • 3 回答
  • 0 关注
  • 1053 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信