Http 协议请求头中的 User-Agent属性会将客户端设备的信息传递给服务器,这些信息包括客户端操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
//获取浏览器信息
var brows = {
name: navigator.appName,
version: navigator.appName,
code: navigator.appCodeName,
agent: navigator.userAgent
}
if((navigator.userAgent.indexOf("iPhone") != -1)||(navigator.userAgent.indexOf("Android") != -1)
||(navigator.userAgent.indexOf("iPad") != -1)) {
// 进行移动端处理
}
根据 UserAgent 是否存在 Android,或 iPhone 可以判断网页是运行在 苹果手机 或 微信手机中。具体是安卓的在 微信中、还是在浏览器中、还是在APP中,在iPhone的 微信中、还是在浏览器中、还是在WebApp中,都可以通过UserAgent来判断。前端JS 获取 UserAgent 可以使用:navigator.userAgent。后端程序可以使用 HTTP_USER_AGENT 来获取。
安卓手机
APP/WebView
Mozilla/5.0 (Linux; Android 6.0.1; MX4 Build/MOB30M; wv)
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/51.0.2704.106 Mobile Safari/537.36
微信
Mozilla/5.0 (Linux; Android 6.0.1; MX4 Build/MOB30M)
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0
Mobile MQQBrowser/6.8 TBS/036849 Safari/537.36 MicroMessenger/6.3.27.880
NetType/WIFI Language/zh_CN
浏览器
Mozilla/5.0 (Linux; Android 6.0.1; MX4 Build/MOB30M)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Mobile Safari/537.36
总结: 存在 Version,是App(微信或APP)内部的WebView
微信存在 MicroMessenger/ NetType/ Language/
不存在则为其他APP
其他模式为浏览器
苹果手机
webapp
Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X)
AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A456
微信/WebView
Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X)
AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A456 MicroMessenger/6.3.27 NetType/WIFI Language/zh_CN
浏览器
Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X)
AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14A456 Safari/602.1
总结微信存在 MicroMessenger/ NetType/ Language/
手机浏览器存在 Version/XX.XX Mobile/XX.XX
啥都不存在是WebApp,还有个 window.navigator.standalone 判断