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

2023-11-11

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

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

方式一,监听popstate,用到的属性window.history

mounted () {
  // 挂载完成后,判断是否支持popstate,监听手机返回键
    if (window.history && window.history.pushState) {
      history.pushState(null, null, document.URL)
      window.addEventListener('popstate', this.goBack, false)
    }
},
destroyed () {
    // 页面销毁时,取消监听,否则其他vue路由页面也会被监听
    window.removeEventListener('popstate', this.goBack, false)
},
methods: {
	//处理业务逻辑
    goBack () {
      this.rrxShow = !this.rrxShow
    },
}

问题

popstate只是能监听到手机返回操作,但是不会拦截后续操作,比如反复触发返回,控制确认框显隐,需要自己去写业务逻辑处理,并且需要移除监听再添加监听,不然影响其他页面的返回操作,有可能其他页面返回几次都无法返回。
好处是不用引用其他插件,只要做好逻辑控,还是挺好用的。

方式二,监听backbutton,cordova+vue,需要依赖cordova

不需要担心监听失效,直接在回调函数写相应方法即可,记得在页面销毁和取消操作后移除监听即可

 mounted () {
    document.addEventListener('backbutton', this.goBack,false)
  },
  destroyed () {
    // 页面销毁时,取消监听
    document.removeEventListener('backbutton', this.goBack,false)
  },
  methods:{
    goBack () {
      this.show = !this.show
    },
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

混合开发监听安卓手机物理返回键 的相关文章

  • 如何从我的班级访问活动 UI?

    我有一个活动创建我的类的对象实例 file MyActivity java public class MyActivity extends Activity TextView myView TextView findViewById R i
  • RecognizerIntent 不起作用; “缺少额外的呼叫包”

    我在 Android 2 2 上使用 RecognizerIntent API 时遇到问题 当我使用以下代码调用 API 时 Intent intent new Intent RecognizerIntent ACTION RECOGNIZ
  • 单击应用程序的启动图标时会发生什么?

    单击应用程序的启动图标时会发生什么 是否总是发送新意图 或者结果有时与从最近的任务恢复任务相同 如果发送意图 它何时被发送到新活动实例的 onCreate 方法以及何时通过现有活动的 onNewIntent 进行路由 假设意图通过任务中现有
  • 自定义视图的Ondraw无限循环android

    我的自定义视图的 OnDraw 函数被无限调用并且正在循环 可能的原因是什么 这是我的自定义视图 public class Balls extends View private static final String TAG BallsVi
  • Camera2设置预览(View)并获取预览回调

    我想从 Camera2 获取预览以及用于处理帧的 byte 回调 mImageReader ImageReader newInstance largest getWidth largest getHeight ImageFormat RAW
  • Android,如何限制TextView的宽度(并在文本末尾添加三个点)?

    我有一个TextView我想限制它的字符 实际上 我可以做到这一点 但我正在寻找的是如何在字符串末尾添加三个点 这表明文本已经继续 这是我的 XML 但没有点 尽管它限制了我的文本
  • 在 doInBackground AsyncTask Android 中传递更多值

    如何传递更多的值doInBackground My AsyncTask看起来像这样 private class DownloadFile extends AsyncTask
  • 如何在默认浏览器或webview中打开按钮点击url

    我怎样才能打开一个网址webview或者点击按钮后在默认浏览器中 目前 当我单击btn1按钮 它提示我从手机中选择一个浏览器 我想在默认浏览器或其他浏览器中打开此网址webview 这是我的java代码 public class myact
  • Android NDK C++“wstring”支持

    我有用 C 编写的源代码 lib 现在我想在 Android NDK 项目 NDK 6 中编译并使用相同的源代码 lib 我能够编译大多数 C 文件 除了基于 std wstring 的功能 在 Application mk 中 当我指定时
  • Android Realm.io:行/对象不再有效

    这是我的删除功能 它确实找到了workday1 object public static void delete Context context Workday workday Realm realm getRealm context re
  • Facebook Android 意图

    我对这个意图有疑问 这个意图是发送文本类型的消息 一切正常 电子邮件 短信 推特以及手机上的任何内容 但唯一有问题的是facebook 它会尝试以链接而不是文本的形式发布 Intent s new Intent android conten
  • Webview 电子邮件链接 (mailto)

    我有一个视图并查看该网站有用于发送电子邮件的 malito 代码 当我打开链接时 会出现错误 我希望当我打开链接时打开 Gmail 应用程序或其他电子邮件应用程序 感谢所有帮助者 public class teacher extends A
  • 如何使用云打印打印Android活动显示

    我正在尝试将 Google 云打印实现到应用程序中 遵循集成指南 https developers google com cloud print docs android 我试图通过打印 google com 来保持基本 单击我创建的打印按
  • 带动画的 ScrollTo(0,250) Android ScrollView

    当我滚动到 0 250 时 我想在滚动动作中包含一个动画 我做了这段代码 但它没有根据动画滚动 scrollMe 是滚动小部件 id ObjectAnimator anim ObjectAnimator ofInt scrollMe tra
  • Phonegap facebook 插件:android 的各种问题

    我正在尝试将 Phonegap 3 1 与 Phonegap facebook plugin 集成 以使我的应用程序能够使用 facebook 登录 https github com phonegap phonegap facebook p
  • 使用 qbs 构建 qt 应用程序

    我想知道在 Linux 上使用 qbs 编译 构建和创建 Android Qt 应用程序的步骤 我拥有所有必要的工具 目前我可以使用 qmake 创建 apk Qbs 目前不支持构建 Qt Android 应用程序 Qbs v1 4 中引入
  • QML MouseArea 将事件传播到按钮

    我正在开发一个应用程序 其菜单类似于 Android 版 Gmail 收件箱应用程序菜单 基本上 当您按下按钮打开菜单时 它就会滑入视图 用户可以将其滑开或按菜单上的按钮 对于滑动我使用了代码SwipeArea from kovrov ht
  • Google Cloud Messaging - 立即收到或长时间延迟收到的消息

    我在大学最后一年的项目中使用谷歌云消息传递 一切正常 但我在使用 GCM 时遇到了一些麻烦 通常 消息要么几乎立即传递 要么有很大的延迟 我读过这篇文章 但我真的认为它不适用于这种情况 GCM 通常会在消息发送后立即传送消息 然而 这并不总
  • 如何减少导航图标和工具栏标题之间​​的差距?

    我的问题是导航抽屉图标和工具栏标题之间 有多余的空间 示例图像如下 工具栏的xml视图是
  • Fragment 的 onSaveInstanceState() 永远不会被调用

    我试图将数据保存在片段的 onSaveInstanceState 中 但该方法从未被调用 有人可以帮忙吗 public class MyFragment extends Fragment Override public View onCre

随机推荐

  • 白嫖 IBM LinuxOne 服务器教程

    白嫖 IBM LinuxOne 教程 1 介绍 1 1前言 LinuxONE Community Cloud是IBM联合Marist大学为学生提供的用于测试应用程序和网站的平台 提供长达120天的免费VPS 温馨提醒 这个 VPS 是 S3
  • 游戏中关于跳跃的函数图像的推导以及应用

    跳跃应该是游戏开发中一个最常见的功能之一 实现的方法也有很多 这里我来讲一个我以前用的一个方法 正常的跳跃 如果使用物理引擎的话 就直接给一个向上的力就可以了 但是有一些游戏 例如跑酷 角色的移动速度都是越来越快的 而如果还是只给一个向上的
  • 【第2篇】VGG——引用最多的论文

    文章目录 摘要 1 引言 2 ConvNet配置 2 1 架构 2 2 配置 2 3 讨论 3 分类框架 3 1 训练 3 2 测试 3 3 实现细节
  • 什么是TPS,什么是QPS,区别是什么?

    一 TPS Transactions Per Second 每秒传输的事物处理个数 即服务器每秒处理的事务数 TPS包括一条消息入和一条消息出 加上一次用户数据库访问 业务TPS CAPS 每个呼叫平均TPS TPS是软件测试结果的测量单位
  • SpringBoot项目jwt生成token集成redis

    业务逻辑 1 用户登录 使用jwt生成token 2 后端把这个token返回给前端 同时把这个token作为key存储在redis中 用户对象作为value 并设置一个过期时间 3 用户以后每次访问都携带这个token 如果这个token
  • Redis--基础知识点--17--rdb_aof

    1 持久化 1 1 什么是持久化 持久化 Persistence 即把数据 如内存中的对象 保存到可永久保存的存储设备中 如磁盘 持久化Redis所有数据保持在内存中 对数据的更新将异步地保存到磁盘上 1 2 持久化的实现方式 快照方式持久
  • Jenkins 自由风格项目 更新网站静态文件

    要想去更新网站必须先创建新的任务 任务名写上网站的名字 现在去更新静态的logo图片是不需要编译的 所以这里不会用到创建maven项目 这里选择构建自由风格的软件项目 无需使用make ant maven去编译 创建好任务之后需要做一些配置
  • Java Controller层异常处理示例【含面试题】

    AI绘画关于SD MJ GPT SDXL百科全书 面试题分享点我直达 2023Python面试题 2023最新面试合集链接 2023大厂面试题PDF 面试题PDF版本 java python面试题 项目实战 AI文本 OCR识别最佳实践 A
  • vscode 内置了 Settings Sync功能

    preface 好尴尬 昨天 刚写完了 通过 settings sync 插件 来同步 vscode 扩展配置 今早 刷 twitter 发现 微软内置了 同步插件 Settings Sync 同步的内容更多 操作更简单 1 客户机A 更新
  • 【C++】list 的使用

    如有侵权 请联系删除 目录 常用操作 要点总结 相关参考资料 常用操作 C 中的list是一种双向链表容器 提供了高效的插入和删除操作 下面是使用list的一些基本操作 包含头文件 在使用list之前 需要包含以下头文件 include
  • Explicit 关键字简介

    Explicit 关键字简介 explicit关键字用来修饰类的构造函数 表明构造函数是显示的 相对的是implicit关键字 首先这个关键字只能用在类内部的构造函数声明上 而不能用在类外部的函数定义上 它的作用是不能进行隐式转换 clas
  • ntp服务器不稳定,NTP服务器的管理如何保持如此准确?

    我们中的许多人对我们的计算机和其他设备偶尔出现问题 保留了准确的时间设置 但是与NTP服务器的快速同步使得一切顺利 但是如果我们自己的设备丢失准确性 NTP服务器如何保持这样准确 今天的问题 照片由LEOL30 Flickr 提供 问题 S
  • 信息化和数字化的本质区别有哪些?

    信息化和数字化的本质区别在于信息化以流程为中心 而数字化以业务为中心 数字化转型与传统信息化的主要区别在于 一方面传统信息化主要涵义是 流程 的信息化 而数字化的主要含义是构建 业务数字化 数字资产化 资产服务化 服务业务化 闭环 通过数字
  • Qt断开信号与槽

    关于信号与槽的研究 DisConnect bool QObject disconnect const QObject sender const char signal const QObject receiver const char me
  • git的安装配置与操作

    一 git 安装与配置 1 git 安装 windows 搜索 git for windows linux yum install y git 查看安装完成 git version git help 2 git 配置 A 配置用户信息 每一
  • android使用隐藏api的方法(使用被@hide的api)

    前言 一开始需要说明的是 Google之所以要将一些API隐藏 指加上 hide标记的public类 方法或常量 是有原因的 其中很大的原因就是Android系统本身还在不断的进化发展中 从1 0 1 1到现在即将问世的Android 2
  • 一个web请求在springboot经历了什么

    写了一个MailServiceController接口 在入口处打上断电 debug启动 可以看到 tomcat embed core 9 0 36 jar 1 run 748 Thread java lang 2 run 61 TaskT
  • Python编程之理解对象

    1 python中的函数和类均是对象 体现在以下几方面 1 都可以赋值给一个变量 2 可以添加到集合对象中 3 可以作为参数传递给函数 4 可以当作函数的返回值 如果一个函数没有return语句 则默认返回None 2 type class
  • 什么是用户token(令牌)-- 转

    在目前的互联网或者计算机网络技术中 经常会听到token或者 令牌 这个词 那有没有想过 token或者说令牌到底是什么东西 有什么作用 为什么token的中文翻译是 令牌 其实这个问题也困扰了我很长的时间 长久以来我都是从token的形式
  • 混合开发监听安卓手机物理返回键

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