侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

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

前端  /  管理员 发布于 2年前   365

背景:项目中有一个场景要监听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可以参考我另外的一篇文章:/article/178777.htm

第三步:

监听返回键事件

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()    })   },}

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

您可能感兴趣的文章:

  • vue中监听返回键问题
  • vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)


  • 上一条:
    Div的一些设置关于边框和透明度的
    下一条:
    ajax跨域获取网站json数据的实例
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • uni-app在详情页中给电话信息添加点击拨打电话的功能按钮(0个评论)
    • uni-app开发小程序搜索功能及添加搜索历史记录、添加热门搜索关键词功能demo(0个评论)
    • uni-app开发小程序使用uni.getLocation()实现页面即时获取当前定位信息demo(1个评论)
    • uni-app开发小程序实现列表页条件筛选显示功能demo(0个评论)
    • vue+elementui实现百度地图api滑上列表显示位置信息(0个评论)
    • 近期文章
    • 2022 年 Laravel 状况调查(0个评论)
    • go语言中将CSV文件数据转换为JSON格式并保存到文件(0个评论)
    • go语言中将json格式数据文件保存到csv文件(0个评论)
    • go语言中实现堆排序算法代码示例(0个评论)
    • 在laravel框架中使用中间件 + 队列的方式记录请求日志(0个评论)
    • laravel框架常用速查表收集(0个评论)
    • go语言中查找最长不含有重复字符的字符串算法示例代码(0个评论)
    • laravel中where IN多列特殊查询类型代码示例(0个评论)
    • 使用Laravel Airdrop加速您的CI构建(0个评论)
    • go语言中日期时间戳比较功能示例代码(0个评论)
    • 近期评论
    • 博主 在

      centos7中Meili Search搜索引擎安装流程步骤中评论 @鹿   执行以下命令看看你的2.27版本是否存在strin..
    • 鹿 在

      centos7中Meili Search搜索引擎安装流程步骤中评论 这是我的错误提示,下载了对应的glibc-2.25.tar.gz后续按照教程操作..
    • 阿凡达123 在

      golang 怎么做热更新中评论 也可以看看这个:https://github.com/edwingeng/hot..
    • 博主 在

      hyperf框架常用命令-在centos7中退出命令及在docker容器中退出命令中评论 @路过的靓仔:cdn静态资源被墙,已修复..
    • GGGGGGGGG 在

      layui框架常用输入框介绍中评论 写的很好解决问题..
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-11
    • 2018-03
    • 2018-04
    • 2018-05
    • 2018-06
    • 2018-09
    • 2018-11
    • 2018-12
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-04
    • 2021-05
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客