Vue全家桶开发Android和IOS移动端应用常见问题解决

Posted A_山水子农

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue全家桶开发Android和IOS移动端应用常见问题解决相关的知识,希望对你有一定的参考价值。

1、input获取焦点弹出键盘时遮住input

  web页面有多个input输入框时,底部的input获取焦点弹出键盘,会出现遮住input情况,用户输入的内容不能正常展示,需要手动上滑。如下图一键盘遮住了备注输入框,图二是处理后的效果,备注输入框自动上滑。

解决办法:使用相对定位relative和绝对定位absolute

<style>
 .main 
    position: relative;
    height: 100%;
    width: 100%;
 
 .section 
    position: absolute;
   
<style>
<body>
	<div class="main">
	  <div class="section">
	    <input>
	  </div>
	</div>
<body>

2、android手机fixed固定在底部的按钮被键盘往上移

  在web页面中用position: fixed对按钮进行固定定位,Android输入框获取焦点弹出键盘会把按钮往上移,我们希望的结果是底部固定按钮不随着输入法而变动。 如下图一“提交”按钮随着键盘往上移,图二是处理后的效果,“提交”按钮自动隐藏。

解决办法: 监控屏幕大小的变化,当屏幕变小的时候让按钮隐藏起来,当屏幕大小与当前屏幕保持一致的时候,让按钮正常显示。

let H = window.innerHeight
window.addEventListener('resize', () => 
  if (window.innerHeight < H) 
    this.showBtn = false
   else 
    this.showBtn = true
  
)

3、Android和ios点击反应延迟

  由于应用是web开发,不是原生的Android和iOS开发,需要对click事件有基本的了解,浏览器默认会在用户点击屏幕大约延迟300毫秒后才会触发点击事件,这是为了检查用户是否在做双击。所以Android和IOS点击后会有300ms延迟,反应迟钝降低了用户体验。为了能够立即响应用户的点击事件,可以使用fastClick

npm install fastclick

在main.js中使用fastclick

import FastClick from 'fastclick'
if ('addEventListener' in document) 
  document.addEventListener('DOMContentLoaded', function () 
    FastClick.attach(document.body)
  , false)

4、IOS输入框点击获取焦点不灵敏

  引入fastClick之后,IOS会产生输入框点击无法获取焦点问题,只有双击或者长按的时候才能使input输入框获取到焦点,解决方法是强制元素focus,即在改写的focus响应函数中直接触发元素的focus事件,在main.js中加入以下代码:

FastClick.prototype.focus = function(targetElement) 
    targetElement.focus();
;

以上是关于Vue全家桶开发Android和IOS移动端应用常见问题解决的主要内容,如果未能解决你的问题,请参考以下文章

vue移动端开发全家桶

实战Vue全家桶(vue + axios + vue-router + vuex)搭建移动端H5项目

Vue全家桶

谷歌技术团队出品,Android Flutter全家桶学习资料全新版

Android Flutter全家桶学习资料(从入门到实战)

VueThink是一套基于Vue全家桶+ Thinkphp的前后端分离框架