当前位置: 移动技术网 > IT编程>开发语言>JavaScript > vue项目中监听手机物理返回键的实现

vue项目中监听手机物理返回键的实现

2020年03月09日  | 移动技术网IT编程  | 我要评论

gateway笔记本拆机,冷漠贵妃酷皇帝,平移

背景:项目中有一个场景要监听android手机物理返回键,但是app和js的中间件又没提供这个事件的监听,只能百度纯js实现了

第一步:

xback.js

;!function(pkg, undefined){
 var state = 'x-back';
 var element;
 var onpopstate = function(event){
  event.state === state && fire();
 }
 var record = function(state){
  history.pushstate(state, null, location.href);
 }
 var fire = function(){
  var event = document.createevent('events');
  event.initevent(state, false, false);
  element.dispatchevent(event);
 }
 var listen = function(listener){
   element.addeventlistener(state, listener, false);
  }
 ;!function(){
  element = document.createelement('span');
  window.addeventlistener('popstate', onpopstate);
  this.listen = listen;
  this.record = record(state);
  record(state);
 }.call(window[pkg] = window[pkg] || {});
}('xback');

第二步:

加载xback.js文件

<remote-script src="../js/xback.js" @load="loadxback"></remote-script>

自定义组件remote-script可以参考我另外的一篇文章:

第三步:

监听返回键事件

methods: {
  // javascript监听手机物理返回键
   loadxback () {
    window.xback.listen(() => {
     this.dialog = this.$createdialog({
      type: 'confirm',
      content: `确定返回吗?`,
      confirmbutton: {
       text: '确定',
       active: true,
       disabled: false
      },
      cancelbutton: {
       text: '取消',
       active: false,
       disabled: false
      },
      onconfirm: () => {
       this.dialog.hide()
       this.close()
      },
      oncancel: () => {
       this.dialog.hide()
       window.history.pushstate('x-back', null, window.location.href)
      }
     })
     this.dialog.show()
    })
   },
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网