如何判断微信内置浏览器 MicroMessenger

备注:基于网络上内容所有修改

在进行微信公众账号开发的时候,其中很大一块是微站点的开发,有时候我们需要知道当前的浏览器是微信内置的浏览器,从而做一些事情。

1、例如微信内置浏览器不显示底部导航,其他浏览器显示底部导航

2、例如表单是否从微信内置浏览器提交

3、等等

那么如何判断呢?

一、微信内置浏览器的 User Agent
如何判断微信内置浏览器,首先需要获取微信内置浏览器的User Agent。

首先我们通过php内置的 $_SERVER["HTTP_USER_AGENT"] server数组来获取User Agent。

iPhone 通过微信内置浏览器访问网页时得到 User Agent 是:

1
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 是:

1
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 这个关键字来确定是否微信内置的浏览器了。
通过 JavaScript 判断

1
2
3
4
5
6
7
8
function is_weixin(){
    var ua = navigator.userAgent.toLowerCase();
    if(ua.match(/MicroMessenger/i)=="micromessenger") {
        return true;
     else {
        return false;
    }
}

通过 PHP 判断

1
2
3
4
5
6
function is_weixin(){ 
    if strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {
            return true;
    }    
    return false;
}
原文地址:https://www.cnblogs.com/2019gdiceboy/p/11004982.html