2013-04-22 29 views
1

檢測本地/股票Android瀏覽器的用戶代理字符串我正在對本地/股的Android 4.1瀏覽器只有 JavaScript錯誤的很多,我想通過PHP來檢測用戶代理字符串。通過PHP

我使用Mobile_Detect庫檢查操作系統,設備和瀏覽器,但它不支持檢測本機Android瀏覽器。

SO上有很多關於這個話題的帖子,但沒有回答它似乎。

我得到了很多的錯誤,指出:

Cannot set property 'webkitTransitionDelay' 
Cannot set property 'webkitTransform' 

...所以我想切換jQuery Mobile的頁面過渡關閉此瀏覽器 - 但是我需要有檢測到它的能力第一。

有沒有辦法檢測到它?我必須強調它不是我想要檢測的操作系統,它是本機瀏覽器(也稱爲Android)。

回答

0

我使用了以下內容:

(preg_match('/^Mozilla\/5\.0.*Android\s[12]\..*\sMobile/i', $_SERVER['HTTP_USER_AGENT']) 
    && !preg_match('/\sChrom/i', $_SERVER['HTTP_USER_AGENT'])) 

要匹配上較舊的Android平臺(1 x或2.X)(其中don't support SVG)Android瀏覽器。

  • 「CHROM」排除兩者的Chrome'和「鉻」(後者可能不存在)
  • 火狐目前不包括Android版本,這意味着它不是正上方匹配。我的情況下添加一個明確排除它下面,它開始加入Android版本號

一些測試字符串:

較早的Android瀏覽器

Mozilla/5.0 (Linux; U; Android 2.3.5; en-gb; SAMSUNG GT-I9100/I9100BUKJ3 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 

上的Chrome瀏覽Android

Mozilla/5.0 (Linux; Android 4.1.2; GT-I9100 Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36 

火狐在Android

Mozilla/5.0 (Android; Mobile; rv:26.0) Gecko/26.0 Firefox/26.0 

的Opera Mini在Android

Opera/9.80 (Android; Opera Mini/7.5.33361/34.788; U; en) Presto/2.8.119 Version/11.10 Mozilla/5.0 (Linux; U; Android 2.3.5; en-gb; GT-I9100 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 

任何版本的Android瀏覽器+不包括火狐:

(preg_match('/^Mozilla\/5\.0.*Android\s\d\..*\sMobile/i', $_SERVER['HTTP_USER_AGENT']) 
    && !preg_match('/\sChrom/i', $_SERVER['HTTP_USER_AGENT']) 
    && !preg_match('/\sFirefox/i', $_SERVER['HTTP_USER_AGENT'])) 

這只是爲好測試用戶代理使用,所以請在評論中貢獻你自己的!