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

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

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

我们一般在浏览器里识别用户的访问设备都是通过 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

分享给朋友:

相关文章

成为人生赢家的一条捷径

成为人生赢家的一条捷径

作为一个合格的上班族,一般周一就已经在期盼着周六周日的到来。然而吃吃喝喝买买买之后,总会有一个烦恼。那就是——账单!一不小心花太多,下周又要吃土。更烦恼的是,身边的有很多朋友,周末一样过得很潇洒,但人家该买房买房,该出国出国,完全是一副“人...

朋友,叫床不要这么大声好吗?

朋友,叫床不要这么大声好吗?

来源|视觉志    ID : QQ_shijuezhi 生活里的意外真是太多了!脑子突然短路一不小心口误说错话真是悲催搞笑尴尬到要飞起一同学跟我说每天他妈妈叫他起床很大声有次他终于不耐烦地说了句:老妈...

职业打假人,这几年的沉浮路

职业打假人,近代的历史,可以从这个行业的“祖师爷”王海说起,在上个世纪90年代初,王海的打假行为,对于这个行业的诞生,起到了“启蒙”的作用,虽然在90年代,整体的大环境并未引起太大的波澜,但是“职业打假”的这 颗种子,和王海的职业,一同发展...

摩拜单车发布“摩拜+”战略 过半新用户来自微信小程序

5月19日消息,摩拜单车在北京举行发布会,正式宣布“摩拜+”开放平台战略,全面布局“生活圈”、“大数据”和“物联网”三大开放平台。中国联通(微博)、招商银行、中国银联、百度地图等8大品牌成为摩拜“生活圈”的首批战略合作伙伴。  此外,摩拜单...

FT12短网址:Tcp长连接与短连接对高并发的影响

1、Tcp树立连接需求三次握手,断开连接需求四次握手。2、tcp树立连接后将会在操作系统内核内存中保护四元组方针(源ip,源port,方针ip,方针port)。3、tcp在断开连接时,自动断开方四元组将会处于time_wait状况,一起源p...

一锅白酒酿

一锅白酒酿

今天早上,收拾着东西去母亲家,女儿从里间蹿了出来,嚷嚷道:“妈妈,你这回千万千万不要从外婆家带东西了,我都吃怕了。”强调的语气让我发笑。刚刚不久,我从母亲家里回来,照例拎回了一堆推辞不掉的食物,其中份量最重的是白酒酿,足足有一大锅,这是我们...

发表评论

访客

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