js識別當前用戶設備的幾個方法


  公司要做一個APP下載頁面,里面需要判斷是安卓還是蘋果訪問本頁面,最開始想偷懶直接在給IOSAPP返回IOSAPP商店地址,然后Android直接進行訪問。但想着畢竟做兩個頁面不利於后期維護和修改,打算還是隨手寫一段js進行判斷。

  js對客戶端的操作系統進行判斷主要通過navigator中的信息進行分析判斷。其中常用於判斷的有navigator.platform、navigator.userAgent這兩個。

  platform(運行瀏覽器的操作系統平台)

  在windows下顯示了Win32,在安卓設備下顯示Linuxi586,在mac中顯示了MacPPC,在iphone中顯示IOS...找出我們需要的平台的信息,通過indexOf進行判斷是否存在關鍵字,即可判斷。

  UserAgent(由客戶機發送服務器的 user-agent 頭部的值)

  UserAgent中一般會附帶部分操作系統特有的值,比如安卓設備中會有‘Android’、‘Adr’,IOS設備中會有'iPhone OS'等,通過這些特征即可進行判斷。

    方法遠不止這兩種,還有通過navigator中的appVersion等其他屬性進行判斷亦可,但所有的判斷都做不到百分百准確,因為這些都是通過分析客戶端發送的信息進行判斷,但如果客戶通過修改客戶端進行偽造,亦是可以的。前段時間百度雲不允許在網站上下載大文件,必須要下載客戶端,很快就有網友發現了繞開的方法。其原理就是對於操作系統的判斷,百度雲網站中首先判斷該用戶使用的是否為windows操作系統,如果是則不允許下載超過一定大小的文件,而在linux中則可以,網友通過修改platform的信息簡單實現了破解,其中涉及的知識不深,但需要靈活運用,還是要對navigator熟悉才可。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM