序言
不知道你有没有注意到当你点击某些软件的下载页面时,其会自动判断出你的操作系统并推送对应的系统版本安装包,其实这就是通过 UA( User Agent )来获取到的用户系统的相关信息,UA 不仅有操作系统的基本信息,还会包含 CPU 的相关信息,以及用户正在使用的浏览器的基本信息,而对于移动端,则还会包括用户的手机品牌和型号等信息。
User Agent
UA 其实就是一个字符串,包含了上述的许多环境信息,打开你的浏览器输入 navigator.userAgent 即可以看到,如下图所示:
对于 PC 端而言,用户的 UA 相对格式固定,使用起来比较方便,但是对于移动端而言,国内的手机厂商却并没有一个统一的标准,而且手机品种繁多且更新频率很高,即使是同一个品牌不同型号的机子 UA 格式也会不同,更有甚者同一个品牌同一个型号,但是不同的定制版(三大运营商就喜欢搞自己的定制版)UA 也不统一,这就造成了想要通过 UA 来准确地获取用户手机的品牌和型号等信息时困难重重。
ua-device
前人种树后人乘凉,好在百度的前端团队基本解决了上述移动端 UA 解析的问题,并且开源了这个库 ua-device ( 几千行正则判断,命中率挺高 ),而且这个项目也一直在更新,但是目前只支持通过 npm 后端部署使用,无法直接在前端加个 script src 就引用。( 老外的 UA 库很明显水土不服,毕竟不了解大天朝的国情 )
ua-device 的使用方式也很简单,传入 UA 字符串即可,下图是官方的例子:
最后附上我的测试页面链接,访问这个页面即可获取到自己手机的基本信息:
你也可以直接调用我的后台接口进行测试,输入格式如下图:(其实你下载上面的测试页面就知道了)
结束语
现在都是大数据的时代,数据分析很热门,但是首先我们必须要获取到用户的信息才行,至于具体分析出个什么东西来那也是后话了,不过用户反馈异常的时候, UA 的信息我想了想还是觉得很有用的。