如何在 AngularJS 中隐藏 android 库存浏览器的布局?
How to hide layout on android stock browser in AngularJS?
我有一个 Web 应用程序的已发布 Beta 版本,它是用 AngularJS 编写并使用 Angular-Material。不幸的是,布局在 Android 的 Stock 浏览器(而不是 chrome)上完全无法使用并且一团糟。由于这需要一些时间来修复,我正在尝试显示
"Sorry the Beta-Webapp is not ready for this browser yet, please use
Chrome"
留言。
是否有一种简单的方法来检测 Android Stock 浏览器并使用 ng-if 和控制器方法隐藏通常的布局?
tl;dr
var isStockAndroid = /^Mozilla\/\d+\.\d+\s\(Linux;\sU;/.test(window.navigator.userAgent);
在 Chrome 开发工具中,您可以模仿 Android 浏览器来确定 userAgent 字符串(可通过 window.navigator.userAgent
获得)。然后,您可以确定此用户代理字符串与移动 Chrome 浏览器之间的差异。这将允许您检测当前用户是否在 Android 浏览器上,并且在这种情况下您可以重定向到一个特殊视图。
以下是我使用 Chrome 开发工具生成的用户代理字符串的一些示例:
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);
我有一个 Web 应用程序的已发布 Beta 版本,它是用 AngularJS 编写并使用 Angular-Material。不幸的是,布局在 Android 的 Stock 浏览器(而不是 chrome)上完全无法使用并且一团糟。由于这需要一些时间来修复,我正在尝试显示
"Sorry the Beta-Webapp is not ready for this browser yet, please use Chrome"
留言。
是否有一种简单的方法来检测 Android Stock 浏览器并使用 ng-if 和控制器方法隐藏通常的布局?
tl;dr
var isStockAndroid = /^Mozilla\/\d+\.\d+\s\(Linux;\sU;/.test(window.navigator.userAgent);
在 Chrome 开发工具中,您可以模仿 Android 浏览器来确定 userAgent 字符串(可通过 window.navigator.userAgent
获得)。然后,您可以确定此用户代理字符串与移动 Chrome 浏览器之间的差异。这将允许您检测当前用户是否在 Android 浏览器上,并且在这种情况下您可以重定向到一个特殊视图。
以下是我使用 Chrome 开发工具生成的用户代理字符串的一些示例:
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);