我发布了一个Web应用程序的Beta版本,该版本是用AngularJS编写的,并使用Angular-Material。不幸的是,布局完全无法使用,并且在Android的Stock浏览器(不是chrome)上搞砸了。由于这需要一些时间来修复,我试图显示
“抱歉,Beta-Webapp还没有为此浏览器做好准备,请使用 铬“
消息。
是否有一种简单的方法可以检测Android Stock浏览器并使用ng-if和控制器方法隐藏常用布局?
答案 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);