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 相关文章推荐
打开超链需要“确认”对话框的方法
Mar 08 Javascript
Prototype Object对象 学习
Jul 12 Javascript
Javascript中产生固定结果的函数优化技巧
Jan 16 Javascript
JS操作图片(增,删,改) 例子
Apr 17 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
Mar 30 Javascript
JavaScript实现的简单烟花特效代码
Oct 20 Javascript
jQuery Ztree行政地区树状展示(点击加载)
Nov 09 Javascript
详解js类型判断
May 22 Javascript
vue-router动态设置页面title的实例讲解
Aug 30 Javascript
JavaScript实现栈结构Stack过程详解
Mar 07 Javascript
vue实现分页的三种效果
Jun 23 Javascript
JavaScript 实现继承的几种方式
Feb 19 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小技巧搜集,每个PHPer都来露一手
2007/01/02 PHP
PHP 遍历文件实现代码
2011/05/04 PHP
PHP中数据库单例模式的实现代码分享
2014/08/21 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
2011/07/31 Javascript
yepnope.js 异步加载资源文件
2011/09/08 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
JScript实现表格的简单操作
2017/08/15 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
2019/01/19 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python 正则表达式操作指南
2009/05/04 Python
python base64 decode incorrect padding错误解决方法
2015/01/08 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
2019/10/24 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
英国领先的品牌珠宝和配件供应商:Acotis Jewellery
2018/03/07 全球购物
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
开业庆典邀请函
2014/01/08 职场文书
大专毕业自我鉴定
2014/02/04 职场文书
车辆委托书范本
2014/10/05 职场文书
项目转让协议书
2014/10/27 职场文书
暑期家教宣传单
2015/07/14 职场文书
2015小学师德工作总结
2015/07/21 职场文书
七年级作文之环保作文
2019/10/17 职场文书
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers