在网站运营或开发的过程中,难免会遇到这样的需求,在微信或QQ内置浏览器中,做特殊处理,例如:通过JS判断出不同应用客户端执行不同的代码,那该怎么实现呢?实现原理通过不同移动端的ua弹窗 获取user-agent 参数包含的信息,进行判断浏览器类型1,JS版代码if (is_weixn()) { alert("请点击右上角按钮, 点击使用浏览器...
在网站运营或开发的过程中,难免会遇到这样的需求,在微信或QQ内置浏览器中,做特殊处理,例如:通过JS判断出不同应用客户端执行不同的代码,那该怎么实现呢?
实现原理
通过不同移动端的ua弹窗 获取user-agent 参数包含的信息,进行判断浏览器类型
1,JS版代码
if (is_weixn()) { alert("请点击右上角按钮, 点击使用浏览器打开"); window.location.href = '跳转到别的网站或页面'; } if(is_qq()){ alert("请点击右上角按钮, 点击使用浏览器打开"); window.location.href = '跳转到别的网站或页面'; } //qq浏览器 if(ua.indexOf('mqqbrowser')> -1 && ua.indexOf(" qq")<0){ return = true; return; } // 微信内置浏览器 function is_weixn() { var ua = navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger/i) == "micromessenger") { return true; } else { return false; } } // QQ内置浏览器 function is_qq(){ var sUserAgent =navigator.userAgent.toLowerCase(); if( sUserAgent.match(/QQ/i) == 'qq'){ alert("QQ下载"); return true }else{ return false } }
2,PHP版代码
if(isQQBrowser() == 'QQ'){ echo "QQ内置浏览器"; }elseif(isWeixin() == 'MicroMessenger'){ echo "微信内置浏览器"; }elseif(isQQBrowser() == 'QQBrowser'){ echo "QQ浏览器"; }else{ echo "其他浏览器"; } function isWeixin(){ if(strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) { return true; //微信内置浏览器 } return false; } function isQQBrowser(){ if(strpos($_SERVER['HTTP_USER_AGENT'], 'QQ') !== false){ if(strpos($_SERVER['HTTP_USER_AGENT'], '_SQ_') !== false){ return "QQ"; //QQ内置浏览器 }else{ return "QQBrowser"; //QQ浏览器 } } return false; }