判断浏览器是否用微信访问
实现原理: 通过判断 User Agent 中是否有 MicroMessenger 关键字,有为微信内置浏览器,无则不是。
判断是否为微信内置浏览器,首先需要获取浏览器的User Agent,在 iPhone 上的微信浏览器检测,它的 User Agent 是:
Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 MicroMessenger/5.0.1
在 Android 上的微信浏览器检测,它的 User Agent 是:
Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.255
所以只要识别字符串中是否含有 “MicroMessenger” 这个关键字就可以确定是否为微信内置的浏览器了。
代码实现:
js判断是否是微信浏览器:
function isVisitByWechat() {
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
return true;
}
return false;
}
PHP判断是否是微信浏览器
function isVisitByWechat() {
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {
return true;
}
return false;
}