tl;dr
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"
安卓浏览器:
"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);