判断页面是否为微信内访问,其实也就是判断浏览器UA是否包含微信浏览器相关信息。
比如下面这段抓取到的UA:
# iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13B143 MicroMessenger/5.4.1
# Android
Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.4.1
可以通过 MicroMessenger 关键词来判断是否在微信内浏览。
JavaScript 方法:
function isWXbrower(){
var ua = navigator.userAgent.toLowerCase();
if( ua.match(/MicroMessenger/i)=="micromessenger" ){
return true;
} else {
return false;
}
}
if( !isWXbrower() ){
……
} else {
……
}
PHP 方法:
function isWXbrower(){
if( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ){
return true;
}
return false;
}
?>
最后看一下微信自家的判断代码:
var ua = navigator.userAgent.toLowerCase();
var isWeixin = ua.indexOf('micromessenger') != -1;
var isAndroid = ua.indexOf('android') != -1;
var isIos = (ua.indexOf('iphone') != -1) || (ua.indexOf('ipad') != -1);
if (!isWeixin) {
document.head.innerHTML = '
抱歉,出错了';document.body.innerHTML = '
请在微信客户端打开链接
}