当前位置:首页 > 短网址资讯 > 正文内容

思路清奇:通过 JavaScript 获取移动设备的型号

www.ft12.com9年前 (2017-07-14)短网址资讯2442

我们一般在浏览器里识别用户的访问设备都是通过 User Agent 这个字段来获取的,但是通过它我们只能获取一个大概的信息,比如你用的是 Mac 还是 Windows,用的是 iPhone 还是 iPad。如果我想知道你用的是第几代 iPhone,这个方法就不行了,前段时间我正好有这个需求,识别移动客户端的具体型号(主要是 iOS 设备),于是思考了下这个问题的实现。

首先,我跟大家一样想到了 UA,不过事实证明这路走不通。就在我无聊一个一个摆弄浏览器的 API 时,突然一篇文章里的某段代码提醒了了我。这篇文章讲的是怎样通过 js 获取图形设备信息的,因为 HTML5 支持了 canvas,所以可以通过 API 获取图形设备的型号,比如显卡的型号。

(function () {
    var canvas = document.createElement('canvas'),
        gl = canvas.getContext('experimental-webgl'),
        debugInfo = gl.getExtension('WEBGL_debug_renderer_info');

    console.log(gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL));})();

运行这段代码就可以获取显卡的型号了,如果你在iOS的设备里运行,会获取到诸如 Apple A9 GPU 之类的信息。而我们知道每一代 iOS 设备的 GPU 型号都是不同的,比如 iPhone 6 是 A8,而 iPhone 6s 就是 A9。看到这里,你应该大概知道我的思路了,就是通过识别 GPU 的型号来辨别设备的型号。

不过这还有个小瑕疵,有些设备是同一代,也就是 GPU 型号完全相同,比如 iPhone 6s, iPhone 6s Plus, iPhone SE。它们用的都是 Apple A9 GPU,怎么区分开它们呢?你会发现它们最大的不同不就是分辨率不同吗?而通过 JavaScript 我们又可以方便地获取屏幕分辨率,这样把两个手段综合应用一下就可以获取设备的准确型号了。

这里有个示例网址,大家可以用手机访问
https://joyqi.github.io/mobile-device-js/example.html

我的代码都放在了 GitHub 上
https://github.com/joyqi/mobile-device-js

这次思考给了我一些解决问题的启发,我们在思考解决方案的时候从侧面入手说不定会有新的发现。就比如我们的这个代码,目前还无法识别同一代的 iPad Air 和 iPad mini,因为它们的 GPU 和分辨率均相同,但是延续这个思路其实是有很多解决方案的,比如大家可以研究下这两个设备的话筒和喇叭个数,而这个数量也是可以通过 JS 获取的 :P

FT12短网址也是通过这个方法,判断用户的设备,然后根据不同的设备展示不同的短网址页面,从而提高用户体验度

扫描二维码推送至手机访问。

版权声明:本文由短链接发布,如需转载请注明出处。

本文链接:https://www.ft12.com/article_287.html

分享给朋友:

相关文章

月薪5万的人都经历过什么?

为了方便起见,人们习惯用数字概括不同的生活状态,比如:《月薪5千穿搭指南》、《月薪2万餐厅指南》。如果你生活在北上广这些竞争压力较大的城市,会发现这类流行的指南所覆盖的人群,大多对自己的薪资并不满意。很多年轻人在新世相后台焦虑地留言,描述自...

道德沦丧!中国电商平台被爆集体造假,造假者月入10万…

道德沦丧!中国电商平台被爆集体造假,造假者月入10万…

 近几年网购发展迅速,人们可以足不出户,就可以享受到其他国家优质的产品。然而,那些某些电商网站上大量所谓的“境外购”、“海外购”,真的是从国外买到的产品吗?近日,《新京报》曝光了一桩惊天海淘平台造假大案,国内所有大型海淘平台,几乎...

Apache Kafka:大数据的实时处理时代

Apache Kafka:大数据的实时处理时代

作者|FT12短网址 编辑|短链接 在过去几年,对于短网址的使用范畴已经远不仅是分布式的消息系统:我们可以将每一次用户点击,每一个数据库更改,每一条日志的生成,都转化成实时的结构化数据流,更早的存储和分析它们,并从中获得...

每天坚持不懈的写软文,得到的几点心得感悟

每天坚持不懈的写软文,得到的几点心得感悟

夜深了,我喜欢这样宁静的夜,它能让人不用去想更多的事情,专注于做自己想做的事情,我认为是一种幸福的事情,拿着手机播放了今晚的《半夜听》节目,听这个节目已经有一段时间了,虽然每天只有那么短短的几分钟,但是那些字眼确实令我欲罢不能,听完几分钟的...

FT12短网址:用上古思想写现代前端

前言本文由@无法毕业的fulvaz翻译分享正文从这开始~这篇文章非常有趣,作者介绍了利用复古的的图形界面设计模式实现组件间解耦。但说起来古老,实际上说明了flux做了什么事情,以及为什么要有flux。利用过去的编程范式可以避免重写你的Jav...

傻逼了吧人类,哥们可是会爬树的

傻逼了吧人类,哥们可是会爬树的

猩球崛起3 剧照电影版的《侏罗纪公园》不稀奇哈,很普通的商业片,看看恐龙就好了。小说却相当有嚼劲儿,很有哲学范儿,笼统讲有一个大的环保观念传播很广:地球、环境都是高人类一个维度的存在,人类乱砍森林、工业废气,各种污染,其实根本不能伤害地球,...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。