2016-03-14 90 views
0

我有一個在AngularJS中編寫並使用Angular-Material的Web應用程序的Beta版本。不幸的是,這個佈局在Android的Stock Browser(不是Chrome)上完全無法使用和混亂。由於這將需要一些時間來解決,我想顯示如何在AngularJS中隱藏Android股票瀏覽器的佈局?

「對不起β-聯的webapp沒有爲此做好準備瀏覽器還沒有,請用 鉻」

消息。

是否有一種簡單的方法可以檢測Android Stock Browser並使用ng-if和控制器方法隱藏通常的佈局?

回答

0

TL;博士

var isStockAndroid = /^Mozilla\/\d+\.\d+\s\(Linux;\sU;/.test(window.navigator.userAgent); 

在Chrome瀏覽器開發工具,你可以模仿Android瀏覽器,以確定的userAgent字符串(通過window.navigator.userAgent可用)。然後,您可以確定此用戶代理字符串與移動Chrome瀏覽器的字符串之間的差異。這將允許您檢測當前用戶是否在Android瀏覽器上,並且在這種情況下您可以重定向到特殊視圖。

這裏是我能夠產生與Chrome瀏覽器開發工具的用戶代理字符串的幾個例子:

鉻: "Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.76 Safari/537.36"

Android瀏覽器: "Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"

在所有的測試中我確實,U;總是出現在用戶代理是Android瀏覽器的"Mozilla/5.0 (Linux;之後。

假設始終是真實的(無擔保,但this網站似乎確認),可以使用下面的代碼來確定當前的瀏覽器是普通的Android:

var isStockAndroid = /^Mozilla\/\d+\.\d+\s\(Linux;\sU;/.test(window.navigator.userAgent);