vue 手机物理监听键+退出提示代码


Posted in Javascript onSeptember 09, 2020

我就废话不多说了,大家还是直接看代码吧~

<script>
	//Toast 这些都是在网上粘的别人的。但是找不到出处了,大佬见谅。
	function Toast(msg,duration){
		duration=isNaN(duration)?3000:duration;
		var m = document.createElement('div');
		m.innerHTML = msg;
		m.style.cssText="width: 60%;min-width: 150px;opacity: 0.7;height: 30px;color: rgb(255, 255, 255);line-height: 30px;text-align: center;border-radius: 5px;position: fixed;bottom: 70px;left: 20%;z-index: 999999;background: rgb(0, 0, 0);font-size: 12px;";
		document.body.appendChild(m);
		setTimeout(function() {
			var d = 0.5;
			m.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in';
			m.style.opacity = '0';
			setTimeout(function() { document.body.removeChild(m) }, d * 1000);
		}, duration);
	}
	var time = '' // 用来存上一次按键时间;
	setTimeout(() => {
		// 监听返回按钮
		document.addEventListener('backbutton', function (evt) {
			console.log('监听按钮');
			var url = location.hash.split('/')[1];
			if (url === 'home' ) {// 处于app首页,满足退出app操作
				console.log('满足条件')
				if (new Date() - time < 2000) {// 小于2s,退出程序
					navigator.app.exitApp();
				} else {  // 大于2s,重置时间戳,
					time = new Date();
					Toast('再次点击退出', 2000);
				}
				return;
			} else {
				console.log('不满足条件')
				history.back(); // 不满足退出操作,,返回上一页
			}
		}, false);
	}, 10)
</script>

代码很简单,逻辑也不是很复杂。但是要说一下为什么要用setTime( )。

我是在vue的index.html里面加的这些代码。在没有添加setTime()的时候不知道为啥他不执行,检查好几遍也没有错。最后请教的大佬,他也不知道为什么。/笑哭 不过能用了。

之前也遇到了一个关闭手机端虚拟键盘的操作。他就是不执行.。

document.activeElement.blur()

后来也是用settime( )解决的。

补充知识:Vue 单页面处理手机返回键问题

在用Vue开发单页面App时候,有时会遇到要处理返回按键的逻辑,让它不是返回默认的上一级页面,而是转到指定的页面。 百度了查了一下,网上给的方法基本都是通过监听“popstate”,并不能完美解决。后来想到了Router的“导航守卫”,在离开时进行处理一下即可。话不多说,直接上例子:

beforeRouteLeave (to, from, next) {
   if(this.success){
    next({path:'/home'});//重定向到指定路径
   }else{
    next()
   }
 }

就是在next()方法里面重定向就行。完美解决,还不用绑定监听再解绑监听。

以上这篇vue 手机物理监听键+退出提示代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 性能优化手册 推荐
Feb 23 Javascript
jquery 插件学习(二)
Aug 06 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
Dec 04 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
Apr 25 Javascript
jQuery中animate用法实例分析
Mar 09 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
Apr 24 Javascript
小程序云开发教程如何使用云函数实现点赞功能
May 18 Javascript
layui自定义ajax左侧三级菜单
Jul 26 Javascript
微信小程序获取地理位置及经纬度授权代码实例
Sep 18 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
Nov 01 jQuery
JS造成内存泄漏的几种情况实例分析
Mar 02 Javascript
利用promise及参数解构封装ajax请求的方法
Mar 24 Javascript
关于angular引入ng-zorro的问题浅析
Sep 09 #Javascript
关于vue的列表图片选中打钩操作
Sep 09 #Javascript
JavaScript日期库date-fn.js使用方法解析
Sep 09 #Javascript
js实现简单抽奖功能
Nov 24 #Javascript
js实现贪吃蛇游戏 canvas绘制地图
Sep 09 #Javascript
Vue路由 重定向和别名的区别说明
Sep 09 #Javascript
JavaScript常用8种数组去重代码实例
Sep 09 #Javascript
You might like
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
php基于PDO连接MSSQL示例DEMO
2016/07/13 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
Mootools 1.2教程 同时进行多个形变动画
2009/09/15 Javascript
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
jQuery中scrollTop()方法用法实例
2015/01/16 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
[54:08]LGD女子刀塔学院 DOTA2炼金术士教学
2014/01/09 DOTA
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
pyqt5简介及安装方法介绍
2018/01/31 Python
Python3.6.2调用ffmpeg的方法
2019/01/10 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
北京泡泡网网络有限公司.net面试题
2012/07/17 面试题
教师自荐信范文
2013/12/09 职场文书
竞争上岗演讲稿
2014/01/05 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
补充协议书
2015/01/28 职场文书
调解书格式范本
2015/05/20 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
外出学习心得体会范文
2016/01/18 职场文书
2016年幼儿园庆六一开幕词
2016/03/04 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers