亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

思路清奇:通過(guò) JavaScript 獲取移動(dòng)設(shè)備的型號(hào)

蘇丹 / 1292人閱讀

摘要:看到這里,你應(yīng)該大概知道我的思路了,就是通過(guò)識(shí)別的型號(hào)來(lái)辨別設(shè)備的型號(hào)。不過(guò)這還有個(gè)小瑕疵,有些設(shè)備是同一代,也就是型號(hào)完全相同,比如。

我們一般在瀏覽器里識(shí)別用戶(hù)的訪問(wèn)設(shè)備都是通過(guò) User Agent 這個(gè)字段來(lái)獲取的,但是通過(guò)它我們只能獲取一個(gè)大概的信息,比如你用的是 Mac 還是 Windows,用的是 iPhone 還是 iPad。如果我想知道你用的是第幾代 iPhone,這個(gè)方法就不行了,前段時(shí)間我正好有這個(gè)需求,識(shí)別移動(dòng)客戶(hù)端的具體型號(hào)(主要是 iOS 設(shè)備),于是思考了下這個(gè)問(wèn)題的實(shí)現(xiàn)。

首先,我跟大家一樣想到了 UA,不過(guò)事實(shí)證明這路走不通。就在我無(wú)聊一個(gè)一個(gè)擺弄瀏覽器的 API 時(shí),突然一篇文章里的某段代碼提醒了了我。這篇文章講的是怎樣通過(guò) js 獲取圖形設(shè)備信息的,因?yàn)?HTML5 支持了 canvas,所以可以通過(guò) API 獲取圖形設(shè)備的型號(hào),比如顯卡的型號(hào)。

(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));
})();

運(yùn)行這段代碼就可以獲取顯卡的型號(hào)了,如果你在iOS的設(shè)備里運(yùn)行,會(huì)獲取到諸如 Apple A9 GPU 之類(lèi)的信息。而我們知道每一代 iOS 設(shè)備的 GPU 型號(hào)都是不同的,比如 iPhone 6 是 A8,而 iPhone 6s 就是 A9。看到這里,你應(yīng)該大概知道我的思路了,就是通過(guò)識(shí)別 GPU 的型號(hào)來(lái)辨別設(shè)備的型號(hào)。

不過(guò)這還有個(gè)小瑕疵,有些設(shè)備是同一代,也就是 GPU 型號(hào)完全相同,比如 iPhone 6s, iPhone 6s Plus, iPhone SE。它們用的都是 Apple A9 GPU,怎么區(qū)分開(kāi)它們呢?你會(huì)發(fā)現(xiàn)它們最大的不同不就是分辨率不同嗎?而通過(guò) JavaScript 我們又可以方便地獲取屏幕分辨率,這樣把兩個(gè)手段綜合應(yīng)用一下就可以獲取設(shè)備的準(zhǔn)確型號(hào)了。

這里有個(gè)示例網(wǎng)址,大家可以用手機(jī)訪問(wèn)
https://joyqi.github.io/mobil...

我的代碼都放在了 GitHub 上
https://github.com/joyqi/mobi...

這次思考給了我一些解決問(wèn)題的啟發(fā),我們?cè)谒伎冀鉀Q方案的時(shí)候從側(cè)面入手說(shuō)不定會(huì)有新的發(fā)現(xiàn)。就比如我們的這個(gè)代碼,目前還無(wú)法識(shí)別同一代的 iPad Air 和 iPad mini,因?yàn)樗鼈兊?GPU 和分辨率均相同,但是延續(xù)這個(gè)思路其實(shí)是有很多解決方案的,比如大家可以研究下這兩個(gè)設(shè)備的話(huà)筒和喇叭個(gè)數(shù),而這個(gè)數(shù)量也是可以通過(guò) JS 獲取的 :P

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/87097.html

相關(guān)文章

  • 2017-07-13 前端日?qǐng)?bào)

    摘要:前端日?qǐng)?bào)精選餓了么的升級(jí)實(shí)踐專(zhuān)題之深淺拷貝思路清奇通過(guò)獲取移動(dòng)設(shè)備的型號(hào)正則表達(dá)式完整教程略長(zhǎng)掘金中的關(guān)鍵詞中文第期字號(hào)與行高譯任何網(wǎng)站都可以成為漸進(jìn)式網(wǎng)絡(luò)應(yīng)用但我們需要做的更好掘金年學(xué)習(xí)最好的書(shū)籍眾成翻譯行代碼實(shí)現(xiàn)模板引擎 2017-07-13 前端日?qǐng)?bào) 精選 餓了么的PWA升級(jí)實(shí)踐JavaScript專(zhuān)題之深淺拷貝思路清奇:通過(guò) JavaScript 獲取移動(dòng)設(shè)備的型號(hào) - Seg...

    LucasTwilight 評(píng)論0 收藏0
  • 詳解英特爾轉(zhuǎn)型戰(zhàn)略:從PC轉(zhuǎn)向云計(jì)算和物聯(lián)網(wǎng)

    摘要:說(shuō)到這,英特爾下一批比當(dāng)前更高端的和將會(huì)在今年最后一個(gè)季度出貨,主攻高性能平板電腦和上網(wǎng)本市場(chǎng)。過(guò)去,英特爾一直為智能手機(jī)和平板電腦廠商提供芯片,通過(guò)聯(lián)合營(yíng)銷(xiāo)的方式獲取利潤(rùn)。不得不承認(rèn),英特爾的移動(dòng)戰(zhàn)略失敗了,或許是沒(méi)有照顧好而錯(cuò)失了機(jī)會(huì)?! √岬接⑻貭枺赑C處理器行業(yè)幾乎無(wú)人不知,但是在移動(dòng)市場(chǎng)努力多年卻無(wú)法達(dá)到同樣的水平。長(zhǎng)期以來(lái),英特爾只能通過(guò)幾款基于自家Atom處理器和調(diào)制解調(diào)器的...

    tommego 評(píng)論0 收藏0
  • SRECon Day1 | 比起干貨滿(mǎn)滿(mǎn),更吸引我是畫(huà)風(fēng)清奇

    摘要:第一天下來(lái)的感覺(jué)就是高大上,組織者高大上,贊助商們谷歌,,微軟,,,,,等高大上,更高大上就是會(huì)議地點(diǎn)舊金山,美的讓人樂(lè)不思京霾了。強(qiáng)力推薦來(lái)自的,原因是在舊金山聽(tīng)了場(chǎng)精彩絕倫的相聲,由和共同完成,不分捧逗。 SRECon17 第一天下來(lái)的感覺(jué)就是高大上, 組織者 USENIX ( Advanced Computing Systems Association )高大上,贊助商們(谷歌,...

    kaka 評(píng)論0 收藏0
  • SRECon Day1 | 比起干貨滿(mǎn)滿(mǎn),更吸引我是畫(huà)風(fēng)清奇

    摘要:第一天下來(lái)的感覺(jué)就是高大上,組織者高大上,贊助商們谷歌,,微軟,,,,,等高大上,更高大上就是會(huì)議地點(diǎn)舊金山,美的讓人樂(lè)不思京霾了。強(qiáng)力推薦來(lái)自的,原因是在舊金山聽(tīng)了場(chǎng)精彩絕倫的相聲,由和共同完成,不分捧逗。 SRECon17 第一天下來(lái)的感覺(jué)就是高大上, 組織者 USENIX ( Advanced Computing Systems Association )高大上,贊助商們(谷歌,...

    jsbintask 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<