2013-08-04 54 views
1

我使用嵌入在Google網站上的谷歌日曆。檢測谷歌網站上的黑莓瀏覽器

黑莓用戶正在報告錯誤,所以我想將它們重定向到另一頁。

我嘗試添加使用instructions provided here這個代碼

<script type="text/javascript"> 
    var ua = navigator.userAgent; 
    var url = "http://optimizedmobile.yoursite.com/"; 
    if (ua.indexOf("BlackBerry") >= 0) 
    { 
     if (ua.indexOf("WebKit") >= 0) 
     { 
     window.location = url; 
     } 
    } 
</script> 

,但它不工作。我測試了我創建的html文件中的代碼並且它可以工作。

那麼,任何其他的想法包括在頁面上的代碼?您認爲Google代碼不支持該代碼嗎?

任何其他想法重定向BB用戶?

回答

6

我並不確切其中您正試圖檢測到的BlackBerry設備。不幸的是,其中許多人的答案不同。

this BlackBerry.com reference document,UserAgent的一些例子:

用戶代理在黑莓10

Mozilla/5.0 (BB10; <Device Type>) AppleWebKit/537.10+ (KHTML, like Gecko) Version/<BB Version #> Mobile Safari/537.10+ 

用戶代理在黑莓平板OS

Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.0.0; en-US) AppleWebKit/535.8+ (KHTML, like Gecko) Version/7.2.0.0 Safari/535.8+ 

用戶代理黑莓6和BlackBerry 7

Mozilla/5.0 (BlackBerry; U; BlackBerry AAAA; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/X.X.X.X Mobile Safari/534.11+ 

用戶代理黑莓設備軟件4.2至5.0

BlackBerry9000/5.0.0.93 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/179 

因此,它看起來對我來說,完全匹配的字符串BlackBerry只會在用戶代理中顯示具有Java OS版本4.2 - 7.1的設備。而且,其中只有OS 6.0 - 7.1的用戶纔會使用WebKit瀏覽器。

因此,我認爲您只需在if聲明中添加更多的案例來檢測所有BlackBerry設備。

1

使用用戶代理來確定您運行的平臺是一種經典的方法,但這些邊緣情況是它的缺點。

我寫了這個is-mobile component,它可以檢測你是否在黑莓和其他平臺上運行,並考慮到各種邊緣情況。

隨意導入和使用如在這些例子:

isMobile.BlackBerry() => true/false 
isMobile.iPhone() => true/false 
isMobile.iOS() => true/false 
isMobile.Android() => true/false 
isMobile.any() => true/false