vue的H5项目监控微信上的Android返回按钮。这段时间,公司完成了一个vueH5项目,通过微信扫码打开网页。但是,当Android手机按下返回键时,页面就会关闭,而且之前写的东西不会被保存,影响使用。于是通过查资料,听安卓返回键。参考:简书1.Mountmounted(){if(window.history&&window.history.pushState){history.pushState(null,null,document.URL)window.addEventListener('popstate',this.backChange,false)//false阻止默认事件}},2.当页面销毁时,取消监听。否则其他vue路由页面也会被监听(使用keep-alive时不会执行destroyed钩子)。在开发过程中,遇到了一个问题。每次return只在第一次有效,后面就没有效果了,所以每次在弹出框第一次打开的时候动态绑定事件,返回的时候解绑,问题就解决了destroyed(){window.removeEventListener('popstate',this.backChange,false)//false阻止默认事件},3.在方法中添加方法backChange(){//constthat=thisconsole.log('monitored')consthtml=`退出后不会保存输入的信息,确定退出吗?`history.pushState(null,null,document.URL)//setTimeout(()=>{MessageBox({title:'Prompt',message:html,showCancelButton:true,showModal:false}).then(action=>{if(action==='confirm'){window.location.href='about:blank'//eslint-disable-next-linewx.closeWindow()}if(action==='cancel'){console.log(456)}})//},300)},4.当你点击确定时,关闭它page//windows浏览器关闭window.location.href='about:blank'//微信浏览器关闭eswx。closeWindow()5.应用Mint-UI组件库。MessageBox是一个弹框组件。6.最终效果
