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 相关文章推荐
使用prototype.js进行异步操作
Feb 07 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
Oct 15 Javascript
javascript跨域的方法汇总
Oct 23 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
Jan 28 Javascript
JS生成某个范围的随机数【四种情况详解】
Apr 20 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
Oct 14 Javascript
angularjs中ng-attr的用法详解
Dec 31 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
Mar 08 Javascript
vue+element实现批量删除功能的示例
Feb 28 Javascript
深入理解js 中async 函数的含义和用法
May 13 Javascript
vue实现路由不变的情况下,刷新页面操作示例
Feb 02 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
Dec 07 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
php设计模式 Mediator (中介者模式)
2011/06/26 PHP
php array_filter除去数组中的空字符元素
2020/06/21 PHP
smarty模板中拼接字符串的方法
2014/02/14 PHP
PHP开发注意事项总结
2015/02/04 PHP
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
php实现的简单检验登陆类
2015/06/18 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
php通过各种函数判断0和空
2020/07/04 PHP
Ext grid 添加右击菜单
2009/11/26 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
js事件触发操作实例分析
2019/06/21 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
详解Django中的权限和组以及消息
2015/07/23 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
运动会广播稿20字
2014/02/18 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
创业计划书之农家乐
2019/10/09 职场文书
python模块与C和C++动态库相互调用实现过程示例
2021/11/02 Python
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis
Python必备技巧之函数的使用详解
2022/04/04 Python