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中获取iframe的代码
Jan 11 Javascript
JavaScript 图像动画的小demo
May 23 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
Jun 04 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
Oct 11 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
Oct 11 Javascript
自己封装的一个原生JS拖动方法(推荐)
Nov 22 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
Jan 16 Javascript
JavaScript实现弹出广告功能
Mar 30 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
May 11 Javascript
JS中call和apply函数用法实例分析
Jun 20 Javascript
vue实现移动端省市区选择
Sep 27 Javascript
小程序实现日历左右滑动效果
Oct 21 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
[原创]效率较高的php下读取文本文件的代码
2008/07/02 PHP
用PHP代码给图片加水印
2015/07/01 PHP
laravel开发环境homestead搭建过程详解
2020/07/03 PHP
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
预加载css或javascript的js代码
2010/04/23 Javascript
JS Replace()的高级使用方法介绍
2013/06/29 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
JavaScript程序设计之JS调试
2015/12/09 Javascript
Sea.JS知识总结
2016/05/05 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
javascript实现数据双向绑定的三种方式小结
2017/03/09 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
通过fastclick源码分析彻底解决tap“点透”
2017/12/24 Javascript
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
python实现ping的方法
2015/07/06 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
大学毕业感言200字
2014/03/09 职场文书
银行授权委托书格式
2014/10/10 职场文书
导游欢送词
2015/01/31 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书
小学体育课教学反思
2016/02/16 职场文书
小数乘法教学反思
2016/02/22 职场文书
爱岗敬业先进典型事迹材料(2016推荐版)
2016/02/26 职场文书
《追风筝的人》:人心中的成见是座大山,但请不忘初心
2019/11/15 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS
解读MySQL的客户端和服务端协议
2021/05/10 MySQL
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis