如何在AngularJS中隐藏Android股票浏览器上的布局?

时间:2016-03-14 20:34:10

标签: android angularjs angular-material

我发布了一个Web应用程序的Beta版本,该版本是用AngularJS编写的,并使用Angular-Material。不幸的是,布局完全无法使用,并且在Android的Stock浏览器(不是chrome)上搞砸了。由于这需要一些时间来修复,我试图显示

  

“抱歉,Beta-Webapp还没有为此浏览器做好准备,请使用   铬“

消息。

是否有一种简单的方法可以检测Android Stock浏览器并使用ng-if和控制器方法隐藏常用布局?

1 个答案:

答案 0 :(得分: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"

在我做过的所有测试中,当用户代理是Android浏览器时,U;似乎总是出现"Mozilla/5.0 (Linux;

假设总是如此(没有保证,但this网站似乎确认了这一点),您可以使用以下代码来确定当前浏览器是否为股票Android:

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