VUE前端界面在iOS中遇到的坑

前段时间,公司用前端做了一个微型图片生成界面,通过考虑,选择使用vue多页面进行编写,在界面编写完成之后,本地浏览器进行测试,发现一切都很顺利,然后嵌入到APP端进行联合测试。前期,界面在Android上运行比较顺利,个人以为没什么问题,但是当页面嵌入到iOS中,问题暴露了出来,主要体现在三点上:

1、界面使用了瀑布流滑动效果,但是在iOS上滑动效果非常的差,会出现卡顿现象;

2、在界面进行点击的时候,界面响应明显要比Android上要慢很多;

3、界面按钮点击之后会产生一个灰色的阴影图层;

开始,在iOS本身寻找问题,以为是iOS webview使用的问题,但是当页面在微信或者其他应用中打开之后,也会出现这种问题,以此排除iOS webview问题,确认问题出现在前端界面上,经过排查,发现是iOS在嵌入前端界面时本身机制的问题,在经过修改之后,问题得以解决,附上解决方案:

一、滑动效果卡顿问题解决方案

在需要滑动的位置加上如下css代码:

-webkit-overflow-scrolling:touch;

以此,界面滑动卡顿问题得以解决,但是,这一行代码会带来一个副作用:

1、在滑动界面之中使用的position:fixed 无法固定下来,会随着界面进行一起滚动

解决方法:将使用的position:fixed(头部导航)写在滑动部位外部,在使用绝对定位进行布局,以此解决问题

2、vue中使用v-if导致的界面初始化之后无法滑动

解决方法:将v-if改成v-show进行展示,解决界面进入之后第一次不能滑动的问题


二、界面点反应慢、延时问题解决方案

经过排查,导致问题的原因是iOS嵌套界面之后,界面点击效果会自动产生一个300毫秒的延时,解决方案:

vue 引入 fastclick(npm install fastclick -S)

然后再进行引入 FastClick.attach(document.body);

问题解决

注:在引入fastclick之后,会有一个副作用:input输入框需要连续点击两次或者长按才能获取焦点,解决方法详见个人文章:

vue引入fastClick导致的输入框点击无响应问题


三、按钮点击之后会产生灰色图层解决方案

目前未发现前端有效的解决方案,本次是让iOS进行单独的处理


四、关于new Date()转换时间在iOS中不生效问题

前端界面使用new Date('2018-12-20 23:59:59').getTime(),放到iOS中后发现,没有正常转换成时间戳,经过查找相关资料发现,

iOS不支持该种时间格式的转换,将代码写成:

new Date('2018-12-20T23:59:59').getTime()

即可获取到正确的时间戳


五、关于部分拷贝方法在iOS中不生效问题

前端有时候需要用到拷贝部分内容到剪切板中,但是在使用时发现,部分网上提供的拷贝方法在Android中正常使用,但是在iOS中无法进行拷贝,经过试验发现一种通用的拷贝方法,如下:

/**

* 将内容拷贝到剪切板中

*

* @param copyText                  需要拷贝的内容

*/

function copyContent(message) { // text: 要复制的内容, callback: 回调

  var input = document.createElement("input");

  input.value = message;

  document.body.appendChild(input);

  input.select();

  input.setSelectionRange(0, input.value.length);

  document.execCommand('Copy');

  document.body.removeChild(input);

}

该方法亲测在Android以及iOS中都有效


六、关于input输入框在iOS中获取到焦点之后界面上移无法回落问题

在联合移动端开发过程中,会遇到input输入框获取到焦点之后,软键盘自动顶起界面,但是失去焦点之后无法回落的问题,解决方法如下,添加如下代码:

const scrollHeight = document.documentElement.scrollTop || document.body.scrollTop || 0;

window.scrollTo(0, Math.max(scrollHeight - 1, 0));



七、关于移动端定时器运行过程中,界面点击/滑动会造成定时器卡顿的现象

原因:界面点击时,iOS会有300毫秒延时阻塞,同时界面滑动时,也会造成定时器方法的阻塞

解决方法:

1.使用fastClick结局300毫秒延时问题,参考文章   第二点

2.定时器运转期间,使用css或者js禁止界面滚动

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • 她,在几十公里以外的他处,她通过网路向我要钱、向我倾诉情感。语言变化着,携带着情感,我感到害怕、恐惧继而产生愤怒,...
    娥少的春天阅读 206评论 0 0
  • 有文字从地平线升起 因为阿波罗的召唤 初冬温好 海水里墨香飘摇 众鸟一起飞来 东方有诗和酒 打开窗帘放飞新鲜的梦 ...
    客尘人阅读 276评论 0 0
  • 经历的每一个地方,经历的每一个人,都要付出时间与感情,等有一天回头的时候,你还能想起点什么。这是士兵突击里面袁朗跟...
    千里行军阅读 180评论 0 1
  • 2016年的5月份,我当时准备在天津买房,毕竟自己住着单位的房子不是长久之计,我由于没有任何的买房的基础和经验,就...
    职场精英666阅读 311评论 0 2