(原创)坑爹的手机UC浏览器

uc

Android手机现在不用chrome,但是注意看的话一般还是会默认的用的Mozilla浏览器,这个浏览器有其自身的问题,但是今天讨论的重点不是他,所以不做分析描述。

一. 问题起源:

下午竞价的同事提醒我说,然后根据详细的分析了解发现,在UC浏览器下,公司多个手机站都不能连商务通。

二. 问题症状:

1.  公司手机wap站在UC浏览器下出现商务通不能打开,就是在UC浏览器下无法正常对话;

2. 在手机默认的浏览器下,商务通对话都正常;

3. 在UC下初次打开页面商务通不能代开,但是如果刷新一下当前页面,就会发现正常了。

三. 问题分析步骤

1.  因为之前这个问题从来没有人反馈过,首先我们还是要分析是不是最近的某次修改导致的问题,把代码会退到半个月之前,因为最近一次修改就是同事修改了一点js,我们把代码会退后一度认为是解决了问题,但后来还是发现,其实只是因为我们刷新了一下,看起来好了,其实是还没好。

2. 同事发现可能是swt部分的代码修改的问题,最近几个月修改了一次商务通的代码,出于一个外行指导内行的原因吧,把商务通代码会退到以前的情况,发现问题依然还是没能解决。

3. 从网页上的报错情况出发,因为网页加载过程中经常会出现js加载失败,或者是返回错误的情况,因为正常的pc浏览器都有很强的容错性,即使出现js不能打开或者调用失败,一般情况下都能正常展示,所以开始不认为是加载js错误导致的问题。但是经过测试后发现,问题就是出现在js的加载上。把加载异常的js代码屏蔽之后,一切就都好了。

这个问题说明,UC浏览器的容错性几乎是最傻x的,这个浏览器可能会导致太多的网页调用异常,垃圾浏览器。

四. 问题总结

1.  尽量避免一些很无谓的问题去修改手机站的代码,因为如果暂时使用得很好,完全没必要冒险修改;

2. 避免使用一些垃圾代码,比如说正常的获取手机号功能啊之类的,甚至是baidu或者360这些知名公司的js代码,一旦他们不再维护,甚至代码不再存在,或者是某次修改异常的时候,都会连累到我们,所以这部分代码基本上能不用就不用,如果一定要使用,要使用当前比较背认可的公司的js代码。

3. 要了解当前主流的手机浏览器,做好兼容性测试,尤其是一些市场份额比较大的国产浏览器,其实这个问题的根源不是代码,而是国产浏览器的兼容性差的问题,但是其市场份额较大,不容轻视,就像IE6~IE9一样,大家都知道是垃圾浏览器,但是,没有人敢说,我不需要IE6.