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

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

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

我们一般在浏览器里识别用户的访问设备都是通过 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短网址解读阿里Q4财报:将增加短网址投入成本

阿里巴巴周五收涨,盘中股价创历史记录。公司周四发布最新财报,财报显示,阿里巴巴集团第四财季收入为385.79亿元人民币,同比增加60%;阿里中心电商事务收入同比增加47%,运营赢利达165亿元;包括阿里云以及数字媒体和文娱事务等新式事务收入...

减轻服务器负载的建议和技巧

我们公司有个面向服务的架构。其中一个服务是字体服务,字体体系和 unicode 编码范围(unicode range)提供字体数据,为用户上传的字体验证权限。我们没想到这个字体服务会有很高的负载1(负载是指线程消耗和 CPU 等待的平均值)...

为了抢夺抢中国游客,马云与万豪国际设合资公司

北京时间8月7日晚间消息,据彭博报道,阿里巴巴与万豪国际合作,大力推动自己的旅行服务。万豪是全球最大的酒店经营商,旗下6,000多家酒店遍及全球。  两边将成立一个合资公司,在阿里巴巴旗下的飞猪(Fliggy)网站上推广万豪旗下的酒店,包括...

优胜略汰,7个在 iOS 11 上被移除的功能

iOS 11 上增加的很多新功能我们都已经有所了解,不过,在新版系统当中,苹果同样也移除和淘汰了一些认为对用户体验帮助不大的功能,而且不易被用户察觉。本文我们就为大家综合了多个在 iOS 11 上被移除的功能,看看对你来说是不是都无用。1、...

Prime Day筹备全攻略 各路商家一起解决备货难题

【FT12短网址资讯】还有一个月,本年跨境出口电商第一个大促旺季——亚马逊Prime Day将到来,而此时则成了各卖家最首要的备战时刻。而这也是全球跨境电商解决方案效劳商ESG集团(E-Services Group)参与的第2次亚马逊Pri...

当你老了,一生最后悔什么?

当你老了,一生最后悔什么?

全球统计前五名第一名:92%的人后悔年轻时努力不够导致一事无成所谓少壮不努力,老大徒伤悲,青春的大好时光总是流逝得那么快。而在青春岁月里,又常常碰到那么多的诱惑甚至陷阱,当你猛然醒悟时,也许白发早生,才发现自己竟然一事无成。多数人都遵循着一...

发表评论

访客

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