//定义移动端类型
function pageStats() {
let u = navigator.userAgent,
app = navigator.appVersion;
let obj = {};
obj.isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器
obj.isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
return obj;
}
//监听手机键盘是否弹出
function keyboard(res,size) {
let deviceType = pageStats();
if (deviceType.isiOS) {
setTimeout(function () {
let aaa = document.body.scrollTop;
console.log(aaa);
console.log(size.scrollTop);
if (aaa !== size.scrollTop) {
} else {
//ios端弹出失败回调
}, msg => {
});
}
console.log(aaa !== size.scrollTop); //true 键盘弹出成功
}, 1000)
}
if (deviceType.isAndroid) {
setTimeout(function () {
let bbb = document.body.clientHeight;
console.log(bbb);
console.log(size.windowHeight);
if (bbb !== size.windowHeight) {
} else {
//安卓端弹出失败回调
}, msg => {
});
}
console.log(bbb !== size.windowHeight); //true 键盘弹出成功
}, 1000)
}
}
//手机号输入框获取焦点是否成功
export function clickInput(res) {
let size = {
windowHeight: res.windowHeight,
scrollTop: res.scrollTop
};
res.hasFocus = document.hasFocus() && document.activeElement === res.$refs.phone;
if (res.hasFocus) {
console.log('input聚焦成功');
keyboard(res,size); //键盘是否弹出
} else { //TODO
//聚焦失败回调
console.log('input聚焦失败');
}
}

//写入一个js文件  在组件中引用并传值

例:

 <input type="tel" ref="phone"  @click="clickInput"/>
<script>
import {clickInput} from '../../assets/js/js文件名'; export default {
data() {
return {
deviceType: null,
scrollTop: 0,
windowHeight: 0
}
},
methods: {
clickInput(){
clickInput(this)
},
getSize () {//TODO 原生JS获取
this.scrollTop = document.body.scrollTop;//document.body.scrollTop() jquery;//用于ios键盘监听
this.windowHeight = document.body.clientHeight;//document.window.offsetHeight() jquery ;//用于Android键盘监听
}, }, mounted() {
this.getSize();
},
}

vue 监听手机键盘是否弹出及input是否聚焦成功的更多相关文章

  1. Android 另类方法监听软键盘的弹出收起事件

    http://www.cnblogs.com/csonezp/p/5065624.html 最近做的项目碰到个问题,a界面是fragment+recyclerview,b界面带个edittext,并且 ...

  2. c# 获取移动硬盘信息、监听移动设备的弹出与插入事件

    原文 http://www.cnblogs.com/coolkiss/p/3328825.html 备忘一下改功能,主要通过WMI来实现,对于监听外接设备的弹出和插入事件一开始使用IntPtr Wnd ...

  3. Android监听自身卸载,弹出用户反馈调查

    1,情景分析 在上上篇博客中我写了一下NDK开发实践项目,使用开源的LAME库转码MP3,作为前面几篇基础博客的加深理解使用的,但是这样的项目用处不大,除了练练NDK功底.这篇博客,我将讲述一下一个各 ...

  4. Android 应用监听自身卸载,弹出用户反馈调查

    监听卸载情景和原理分析 1,情景分析 在上上篇博客中我写了一下NDK开发实践项目,使用开源的LAME库转码MP3,作为前面几篇基础博客的加深理解使用的,但是这样的项目用处不大,除了练练NDK功底.这篇 ...

  5. Android 如何监听返回键,弹出一个退出对话框

    android 如何监听返回键点击事件,并创建一个退出对话框, 防止自己写的应用程序不小心点击退出键而直接退出.自己记录下这个简单的demo,备用. public class BackKeyTest ...

  6. [转]Android 如何监听返回键,弹出一个退出对话框

    本文转自:http://blog.csdn.net/sunnyfans/article/details/8094349 Android 如何监听返回键点击事件,并创建一个退出对话框, 防止自己写的应用 ...

  7. Flex里监听mouseDownOutside事件解决弹出窗口点击空白关闭功能

    其实当用户在使用 PopUpManager 打开的某个组件外部单击时,会从该组件分派一个mouseDownOutside事件 监听该事件就能实现点击空白处关闭窗口的功能 this.addEventLi ...

  8. e807. 设置进程监听对话框的延迟弹出

    By default, the progress monitor delays for a short period before it is displayed. There are two pro ...

  9. 使用Picker的时候,让input输入框使用焦点,手机键盘不弹出

    $("#address").click(function(){ document.activeElement.blur(); })

随机推荐

  1. Android中的Context(一)

    Android中的Context(一) 在Android开发中,Context可以说是我们接触地非常多的一个概念了,也译作"上下文",但是这个上下文到底是什么却并不好理解. 通俗的 ...

  2. Rhino学习教程——1.5

    图形面板 图形面板是Rhino为了方便用户操作设置的一个区域,默认提供了“属性”.“图层”.“说明”3个面板(我自定义过了,新增了一个“显示”功能 ). trip:如果要打开更多的图版,可以点击图形面 ...

  3. poj1721

    题解: 直接暴力循环节 然后再做几次 代码: #include<cstdio> #include<cstring> #include<algorithm> #inc ...

  4. GAN的入门级理解(按文章顺序)

    1.https://www.leiphone.com/news/201706/ty7H504cn7l6EVLd.html 我的理解:一开始,G网络利用一组随机噪声生成一堆合成的垃圾照片,交给D网络判断 ...

  5. Python随笔--对象

    组合的用法:

  6. 本周HTML5的知识点

    html5一般用<meta>标签描述网页的摘要信息.标题标签一共有6个,标题字体加粗<h1>最大,<h6>最小. <p>标签标示内容都在一行显示,结束后 ...

  7. Python之OS内置模块

    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curd ...

  8. L364 Should Your Resume Be One Page or Two?

    Should Your Resume Be One Page or Two? Conventional wisdom suggests that you should keep it short: A ...

  9. matlab json文件解析 需要下载一个jsonlab-1.5

    % facebookX24.m clc; addpath('C:\Program Files\MATLAB\R2015b\toolbox\jsonlab-1.5'); % read .json jso ...

  10. Python 内编写类的各种技巧和方法

    Python 内编写类的各种技巧和方法 简介 有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象 ...