做微信站点的开发的时候,我们有需求只允许微信来访问网页。
可行的一种方法是按照浏览器UA来判断是否是微信。

下面是我抓取到的UA:

Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A365 MicroMessenger/5.4.1 NetType/WIFI

我们可以通过MicroMessenger关键词来判断是否是微信了。

下面是js和php的方法示例:

JS:

function is_weixin(){
    var ua = navigator.userAgent.toLowerCase();
    if(ua.match(/MicroMessenger/i)=="micromessenger") {
        return true;
    } else {
        return false;
    }
}

PHP:

function is_weixin(){ 
    if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {
            return true;
    }   
    return false;
}

如果您使用了PHP,您还可以参考文章 PHP判断是否是移动端设备 来判断客户端是否是移动设备,即使您使用了其他语言,也可以参考其中的方法。