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 相关文章推荐
Javascript玩转继承(三)
May 08 Javascript
理解和运用JavaScript的闭包机制
Aug 13 Javascript
详解javascript实现瀑布流绝对式布局
Jan 29 Javascript
如何制作幻灯片(代码分享)
Jan 06 Javascript
关于vue-resource报错450的解决方案
Jul 24 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
Aug 06 Javascript
浅谈webpack下的AOP式无侵入注入
Nov 12 Javascript
vue登录注册及token验证实现代码
Dec 14 Javascript
Vue插槽原理与用法详解
Mar 05 Javascript
零基础之Node.js搭建API服务器的详解
Mar 08 Javascript
Vue通过provide inject实现组件通信
Sep 03 Javascript
Vue中强制组件重新渲染的正确方法
Jan 03 Vue.js
关于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 加密解密内部算法
2010/04/22 PHP
PHP 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
javascript代码加载优化方法
2011/01/30 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
2016/05/19 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
javascript实现移动端触屏拖拽功能
2020/07/29 Javascript
js实现车辆管理系统
2020/08/26 Javascript
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
python 矩阵增加一行或一列的实例
2018/04/04 Python
Python读取本地文件并解析网页元素的方法
2018/05/21 Python
浅析Python 读取图像文件的性能对比
2019/03/07 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
个人自荐书
2013/12/20 职场文书
写演讲稿要注意的六件事
2014/01/14 职场文书
公司2014年度工作总结
2014/12/10 职场文书
销售经理岗位职责
2015/01/31 职场文书
幽灵公主观后感
2015/06/09 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
安装配置mysql及Navicat prenium的详细流程
2021/06/10 MySQL