在网站运营或开发的过程中,难免会遇到这样的需求,在微信或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;
}







umtheme





