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

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

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

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

分享给朋友:

相关文章

FT12短网址:如何假装看起来很穷?

FT12短网址:如何假装看起来很穷?

如果一个人能无所顾忌坦然说自己穷,那他不是太年轻,就是太幸福。 一般人到中年,无论如何都要想法证明自己,并没有那么穷,因为穷人的自尊心啊,稍微碰一下满地都是血。 前几天我去吃亲戚家喜酒,别人都珠光宝气穿新衣服去,显得光彩...

详解KAFKA是如何做到1秒发布百万级条消息的

详解KAFKA是如何做到1秒发布百万级条消息的

KAFKA是分布式发布-订阅音讯体系,是一个分布式的,可划分的,冗余备份的持久性的日志服务。它首要用于处理活跃的流式数据。如今被广泛地应用于构建实时数据管道和流应用的场景中,具有横向拓展,容错,快等优点,并现已运行在许多大中型公司的出产环境...

实体零售的18个人工智能应用场景

实体零售的18个人工智能应用场景

[ 短网址资讯 ] 2016年,人工智能(AI)无论是在产业领域还是在资本层面都热度高涨,除了众多知名软硬件公司的高调切入,人工智能领域同样成为许多创业者眼中的热土。有数据显示,2016年人工智能的市场规模已经达到300...

可以原谅,但不再信任!

可以原谅,但不再信任!

如果有人伤害了你,可以原谅他,但永远也不要再相信他。原谅是放过你自己,而盲目信任却只会给他再伤害你的机会。我们当然可以相信人会改过,但验证的机会就留给别人吧。那些伤害过你的人,放过他们,路过他们,挥挥手永不再见。即使生活给你一千个伤心的理由...

新手最常见的负面SEO方法

新手最常见的负面SEO方法

什么是负面SEO负面SEO指的是自个网站排行做不上去时,通过一些办法,通常是不正当的办法,把竞争对手的页面拉下来,有时分作用和自个页面排上去差不多。这儿说的负面SEO和利用SEO手法限制公司负面新闻(或者叫搜索引擎上的网络负面危机公关和名誉...

人工智能再次挑战人类!准星高考机器人将征战2017高考数学

人工智能再次挑战人类!准星高考机器人将征战2017高考数学

[ 短网址资讯 ] 林辉说,AI-MATHS在本年2月份时取得了93分成果。在本年2月之前,AI-MATHS仅有100套试题的练习量,从2月开始,为了练习AI-MATHS的答题速度,团队加大了题量,现在AI-MATHS已有500套...

发表评论

访客

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