我是MobileESP項目的創始人和維護者,這是一個免費的開源跨平臺庫,用於檢測移動設備。它仍然非常活躍! :-)
www.mobileesp.org
MobileESP 只有給出了二進制 「是移動」 的響應。您可以通過iOS,Android或Windows Phone等平臺或設備類別(如「iPhone Tier」智能手機與平板電腦)進行檢測。請務必快速瀏覽API頁面。
正如您所知,useragent字符串差別很大。如果設備上裝有瀏覽器,製造商可以對其進行定製。例如,HTC經常定製本機Android瀏覽器的useragent字符串。
Google提供有關OEM應如何定製useragent的建議。如果該設備應被視爲手機,則Google建議在該字符串中加入「mobile」元素。但如果設備應該被視爲平板電腦,那麼該字符串應該是而不是包含「mobile」。當然,堅持這一建議差異很大。
像Opera或Maxthon這樣的第三方瀏覽器可以把他們想要的任何東西放在useragent字符串中 - 然後做!某些「新」瀏覽器應該保持無名狀態,它們已經在爲每個平臺(例如Android和iOS版本)提供正確的信息到他們的useragent字符串方面做得非常差。除非您從這些瀏覽器獲得大量流量,並且希望投資跟蹤每個平臺和軟件版本的確切useragent值,否則沒有什麼可以做的。
無論如何,MobileESP的創建目標是在頁面投放時逐頁進行檢測。我有目的地編寫了代碼,非常容易閱讀和定製。
做批量處理,你可能會做這樣的事情:
1)在構造函數中註釋掉initDeviceScan()方法。你不需要這個批量處理。
2.)將UserAgent和一個空字符串傳遞給構造函數(UAgentInfo())。
3.)然後運行您感興趣的任何檢測方法。根據您的用戶掃描,仔細考慮您節省時間的順序。
例如,如果您的大多數用戶都對iPhone,這就是你所感興趣的檢測標準之一,那麼首先運行的檢查。如果這個例子,你肯定不會先運行黑莓方法!
我的聯繫信息位於源代碼和網站上。如果您有任何問題或遇到任何錯誤,請給我一張便條。絕對看看MobileESP.org網站的一些提示。
對您的項目Aniket致以最良好的祝願!
_例如,標準較差的Android應用可以發送UA字符串「Android」。_我不認爲你會得到任何適用於非標準用戶代理的庫,如定製瀏覽器所設置的。如果他們是自定義字符串,那麼可能性是無止境的嗎? – anotherdave 2013-03-11 19:33:30
儘管確實沒有庫適用於所有任意字符串,但「Android」仍然是一個公認的用戶代理片段。實際上,問題中提到的庫將其識別爲操作系統片段;例如,WURFL甚至報告它指示移動設備。一些非標準的用戶代理字符串,比如「 - 」,我不希望得到任何信息,但很多隻包含*不完整的信息。 – 2013-03-11 19:56:55
我想這取決於你需要/想要算作「移動」。例如,您鏈接的精簡版設備檢測網站將統計「安卓」的UA字符串爲「移動」/「觸摸」,但不是「平板電腦」,而非標準應用可能會發送此UA字符串在平板電腦版本中可以通過電話輕鬆完成。就我個人而言,我認爲如果您主要關注的是分析,我不會過分擔心非標準字符串 - 您是否真的看到足夠數量的「UNKNOWNS」影響您的統計信息? – anotherdave 2013-03-12 00:12:04