用vue-cli新建的项目中要实现某些页面禁用物理返回键,可使用以下的方法:
方法一:
在main.js中加上以下代码作为禁用路由判断的依据:

const history = window.sessionStorage
let historyCount = history.getItem('count') * 1 || 0
history.setItem('/', 0)
router.beforeEach(function (to, from, next) {if (!store.getters.routerFlag) { // 禁用路由返回,保存到vuex内的next(false)return}
})

store.getters.routerFlag默认是true,使用禁用路由返回时,把store.getters.routerFlag赋值为false,切记在具体某页面使用禁用路由的操作时需要在离开时重新赋值为true,以免影响别的页面使用物理返回键的操作。
在使用页面给vuex的routerFlag赋值:

在script内引用了vuex:

import store from '../../vuex/store.j

使用时:

store.commit('UPDATE_ROUTERFLAG',false)

在跳出该页面时,重新给routerFlag赋值以免影响别的页面的物理返回键的使用:

store.commit('UPDATE_ROUTERFLAG',true)

以上方法只是禁用了物理返回键,如果需要监听到点击物理返回键进行操作时,则可以使用下面的方法:
方法二:
在具体使用禁用物理返回键的页面添加如下代码:

mounted() {// 如果支持 popstate (一般移动端都支持)if (window.history && window.history.pushState) {// 往历史记录里面添加一条新的当前页面的urlhistory.pushState(null, null, document.URL);// 给 popstate 绑定一个方法 监听页面刷新window.addEventListener('popstate', this.backNative
, false);//false阻止默认事件}
},
destroyed(){window.removeEventListener('popstate', this.backNative
, false);//false阻止默认事件
},
methods:{//返回goBack(){window.location.href = 'backtonative.html';//返回操作},goOrderDetail(){store.commit('UPDATE_ROUTERFLAG',true)let orderid = JSON.parse(decodeURIComponent(this.$route.params.orderid)).orderid;this.$router.push(`/orderdetail/${orderid}`);},goIndex(){window.location.href = 'backtonative.html';},backNative() {console.log("监听到了");//点击物理返回键要执行的操作window.location.href = 'backtonative.html';}
},

注:方法一比较适用于禁用物理返回键,即点击物理返回键时不进行任何的操作,方法二除了适用于方法一的操作外,还适用于点击物理返回键时进行制定操作的情况。

vue在移动端实现禁用物理返回键相关推荐

  1. Vue监听浏览器前进后退物理返回键(浏览器自带的)

    Vue监听浏览器前进后退物理返回键 在某些需求下要监听用户物理按键. popstate事件只会在页面不跳转的情况下,路由发生变化触发. created() { // 创建vm实例后执行// 浏览器控制 ...

  2. JS监听手机物理返回键(及IOS微信端的bug)

    需求场景 有一天,头儿给我提了这样一个需求: 无论页面如何跳转,在首页的时候再按返回,直接退出... 解决思路 关闭网页好说,由于我们的项目是微信公众号,直接调用微信浏览器的内置函数: WeixinJ ...

  3. VUE 物理返回键的处理

    H5退出时所遇到的问题: 1.按返回键或anroid手机的物理返回键时,都不走destroy方法. 2.按物理返回键,添加popstate监听时, (1)历史记录要准确,否则会执行多次监听方法 (2) ...

  4. uni-app 监听移动端的物理返回键

    监听移动端的物理返回键: methods: { }, onBackPress(options) {            console.log("用户按下物理返回键"); }, ...

  5. h5移动端实现物理返回键关闭弹框而非返回上一级页面

    需求:页面中的popup弹框,可以通过物理返回键进行关闭 方案: (1)当打开弹框时,向history中添加一个空记录,并且监听history的popstate变化 (2)当弹框打开状态用户操作了返回 ...

  6. uniapp踩坑(五):监听手机物理返回键和滑动返回事件

    需求 android端和ios端点击手机物理返回键(左上角的)或页面滑动键退出后,弹出弹框,点击确定后才退出该页面. 截图展示: 实现代码: 在onBackPress()方法中实现. 注意一定要在su ...

  7. 混合开发监听安卓手机物理返回键

    混合开发监听安卓手机物理返回键 在用h5做混合开发过程中由于有个考试考试页面,中途不能退出,退出要添加确认操作,所以需要监听手机的返回操作,不让用户直接通过返回键返回 目前了解到混合开发中有两种方式监 ...

  8. html5plus 判断手机物理返回键

    html5plus 判断物理返回键 plus.key.addEventListener('backbutton', handleBack); // callback 参数要传一个functionvar ...

  9. android 监听物理返回键,Android应用开发之react-native 监听Android物理返回键

    本文将带你了解Android应用开发之react-native 监听Android物理返回键,希望本文对大家学Android有所帮助. 1. componentWillMount(){         ...

  10. popwindow 焦点问题,物理返回键截获,软键盘监听问题

    首先是setFocusable这个方法,获取焦点:如果不获取焦点,那么popwindow中的控件都没有办法获取焦点和事件响应问题. 如果获取焦点,那么popwindow就会拦截屏幕上的点击触摸事件以及 ...

最新文章

  1. 未来的程序员面临着怎样的职业变化
  2. 使用脚本编写 Vim 编辑器,第 5 部分: 事件驱动的脚本编写和自动化
  3. android自定义LinearLayout和View
  4. c语言 动态链表,C语言的链表(篇章之二:动态链表)
  5. Socket网络编程--聊天程序(2)
  6. qt 读取gif一帧_译:Unreal渲染一帧详解(Unreal Frame Breakdown)
  7. java 使用 lamba 表达式处理二维数组
  8. web平台安装程序 无效的uri_计算机二级Web(1):Web技术基础(上)
  9. 什么是物联网(IoT)?
  10. 从电子印章到印控一体化,企业印章管理更安全高效
  11. 手机打车APP的机遇与挑战
  12. 商业智能,数据仓库,ETL,数仓调度工具informatica介绍手账(二)
  13. 阿拉伯数字转化为大写汉字
  14. SpaceVR真的要上天,让你星际穿越不是梦
  15. 【论文汇总】CVPR2020语义分割医学图像分割paper汇总
  16. python的pack方法_pack() Method
  17. Python绘图实例4:正五边形绘制
  18. 苹果iWatch售价曝光: 还能不能玩耍了!
  19. 怎么关闭计算机主机控制面板,Win7系统PC输入面板怎么关闭?
  20. 基于matlab的三相电路短路,终稿毕业论文设计基于MATLAB的电力系统短路故障分析与仿真.doc最终版(备份存档)...

热门文章

  1. git stash 暂存恢复和文件误删恢复
  2. python tenacity用装饰器方式重试用例,提高测试用例的健壮性
  3. CVPR 2018值得一看的25篇论文,都在这里了 | 源码 解读
  4. 【团队管理】如何做好技术团队年终复盘
  5. c语言中怎么表示26个字母,菜鸟求助,写一个随机输出26个英文字母的程序
  6. 2020入侵防御系统(IPS)TOP10
  7. Java实现新浪微博第三方登录
  8. Unity3d之坦克对战游戏 AI设计
  9. Android:方向传感器
  10. Javascript-实现全局事件总线Event Bus/ Event Emitter