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

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

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

我们一般在浏览器里识别用户的访问设备都是通过 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短网址 ] 根据规划,特斯拉的首款电动半挂卡车将于10月26日正式发布。但在10月4日,一位Reddit用户在其社交网站页面上传了一张包含疑似特斯拉半挂卡车的照片,他将该图描述为“加州一个用于特斯拉汽车开放测试的场地”...

员工执行力差的5个根本原因及对应的解决方法

员工的执行力不行只有两个原因,要么是领导无能,要么是制度无能!个别员工执行力差是能力的疑问;公司整体执行力差就是管理的疑问!和外企的CEO们交流,谈论最多的是战略和战略的问题;而和国内公司家论道,感慨最多的却是履行力的问题。有些公司家经常感...

直播行业乱象丛生,超过10家直播平台被关停,3万多表演者被处理,

 业界有人预测,2020年网络直播市场规模将达到600亿元,网络直播及周边行业市场最终将达到千亿元级资金。  2017年在监管层行业规范行动与“扫黄打非”政策的实施下,直播行业注定无法回到从前野蛮肆意的时期,而是迎来了一个漫长的整...

干货:FT12短网址教你如何在PC端模拟微信内置浏览器

Chrome的调试功用固然是不错,可是现在面向微信的开发项目不断增加,而微信端的内置阅读器内核似乎和Chrome仍是存在蛮大差异呢。假如不断地上载服务器并运用手机阅读,调试效率就太低了。不知道怎么解决这个疑问呢?X5调试最新方法请看教程:h...

小鹏汽车与海格通信合作研发北斗智能汽车导航系统,市场巨大

小鹏汽车与海格通信合作研发北斗智能汽车导航系统,市场巨大

[ 短网址导读 ] 在5月23日举行的第八届我国卫星导航学术年会上,小鹏轿车与斗极导航范畴公司海格通讯宣告达成战略协作,共同在高精度定位效劳、高精度导航地图及人机交互引擎方面进行技能与商品探究。亿欧轿车音讯,继本月初发布了在广东肇...

希望大家活得像朋友圈里一样好

希望大家活得像朋友圈里一样好

Photograph by Mária ?varbová来源丨十点读书作者丨文长长文长长,十点读书签约作者,烈酒小清新一枚,坚信美少女的征途永远是星辰和大海,新浪微博@文长长winnie,公众号:文长长(ID:wenchangchanga)...

发表评论

访客

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