Vue移动端开发问题纪要

Vue移动端开发问题纪要

UC浏览器兼容性问题

  • 现象

在部分Android机型中的UC浏览器下访问,出现白屏现象

  • 解决

之前遇到过类似的问题,第一反应应该是babel-polyfill的问题,要么没有引入要么是引入的方式不对。

看了一眼 main.js 中babel-polyfill的引入位置,之前并不是在最顶部的位置引入的,于是调整到最顶部的位置


import 'babel-polyfill'

import Vue from 'vue'

import ...

另外babel-polyfill还有另一种引入方式,在webpack的配置文件入口处,加入babel-polyfill


entry: {

    // app: './src/main.js'

    app: ['babel-polyfill','./src/main.js']

}

以上两种方案尝试过后,测试人员反馈问题依然存在。由于身边没有出错的真机,无法获取报错信息,于是只好去搜索引擎和github上继续根据现象寻找解决方式。

在这个名为“vue-cli创建的项目打包后在安卓手机qq浏览器和uc浏览器页面空白”issue中,有人提出说锁定webpack-dev-server的版本可以解决问题:

我这边把webpack-dev-server锁定到2.7.1版本就可以用了,你们可以试下

于是决定尝试一下,测试环境更新代码后,测试人员反馈白屏问题依然存在。意识到这种漫无目的的方式并不能快速解决问题,接下来便寻求于寻找真机测试获取报错信息,根据控制台报错信息定位并解决问题。

之前有用过百度和腾讯的几款移动测试平台可以远程真机调试。百度的移动云真机测试倒是有对应的机型,但是收费策略调整后现在是完全收费了。腾讯的几款,有的是没有对应机型,有的需要VIP权限(变相收费)。

想到是否有类似全局的错误事件,如果有的话直接在事件中alert出错误信息,再让测试人员截图,不必真机调试就能获取报错信息了。window.onerror正好可以解决这个问题。等到测试环境代码更新后,正好到了下班时间,打算第二天继续测试,让测试人员看是否有错误弹窗。

第二天测试人员告诉我,问题机型的UC浏览器可以正常访问了。猜测可能是测试时上面的几种改动由于缓存没有及时生效,到了第二天才生效。

某些特殊css属性打包后消失的问题

  • 现象

-webkit-box-orient: vertical;这个css属性在开发环境可以生效,却在打包后的测试环境神奇的消失了!

  • 解决

autoprefixer 的问题,在css属性的前后加上如下的开启和关闭autoprefixer 的注释


/*! autoprefixer: off */

  -webkit-box-orient: vertical; // 参考 https://github.com/postcss/autoprefixer/issues/776

  /* autoprefixer: on */

FastClick与vue-video-player(video.js)冲突问题

  • 现象

播放器在手机浏览器或者chrome开发者工具(手机模式)内,点击播放按钮,播放与暂停事件会被触发多次。

  • 原因

是FastClick.js的bug,大概原因要从FastClick.js的原理说起。FastClick是为专门为解决移动端浏览器300毫秒点击延迟问题所开发的一个轻量级的库。简而言之,FastClick在检测到touchend事件的时候,会通过DOM自定义事件立即触发一个模拟click事件的click事件(自定义事件),并把浏览器在300毫秒之后真正触发的click事件阻止掉。FastClick非常实际地解决300毫秒点击延迟的问题。

那么bug发生的地方就是在阻止300毫秒之后真正触发的click事件这个阶段。如果阻止失败的话,相当于再次触发了点击事件,就会产生播放与暂停相继多次触发的问题。

  • 解决

解决方式粗暴了一些,参考了这个博客中作者的解决方式。通过修改FastClick.js的源码,增加了vjs这个class的验证。

<video>在微信浏览器自动播放问题

  • 现象

需求是在视频列表页显示视频封面以及播放按钮,为了提高页面性能以及兼容某些手机浏览器厂商,避免一些用户体验问题,此时并未显示video标签,当点击某个视频的播放按钮后,显示一个全屏的视频,并自动开始播放。问题就是当显示全屏的视频时,通过内部的状态控制自动播放是不生效的,就会造成这样的现象:在列表页点击视频播放按钮后,需要再点击一次播放按钮才能播放。

  • 原因

autoplay的支持依赖内核和网络状况,比如iPhone在蜂窝网络下明确禁用了autoplay

经过试验,在没有明确的用户操作的情况下,直接通过video.play()也是无法激活播放的;

  • 解决

微信上播放视频必须是用户点击实际的dom后再调用播放器的play属性才可以实现自动播放,比如可以把加载好的播放器实例提前保存,当用户点击播放按钮后在点击的回调里触发播放器的播放事件。

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

推荐阅读更多精彩内容