判定当前网页是否在微信欣赏器中打开

这几天一直在与信内置的欣赏器打交道,也总结出一些如何判定当前欣赏器情况是否为信欣赏器的小履历(其实代码网上一搜一大把),本日记录一下。

判定网页是否在微信欣赏器中打,一般都是通过请求头信息中的HTTP_USER_AGENT来判定,假如是来自微信欣赏器的请求,请求头信息中就会包括‘MicroMessenger’字段,虽然也有微信当前的版本号。

以下是来自微信欣赏器的 userAgent 信息

//Android "HTTP_USER_AGENT": "Mozilla/5.0 (Linux; U; Android 4.1; zh-cn; Galaxy Nexus Build/Wind-Galaxy Nexus-V1.2) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.0.1.352", //Windows Phone "HTTP_USER_AGENT": "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Nokia 920T)", //iPhone; "HTTP_USER_AGENT": "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",

上面三段userAgent信息中,除了 Windows Phone 手机的userAgent信息中没有呈现'MicroMessenger'字段外,Android手机以及iPhone手机中都呈现了,而且还带有微信的版本号。

判定微信欣赏器

PHP判定当前页面是否在微信欣赏器中打开

代码1:

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

代码2:

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

代码3:判定微信欣赏器的版本号

function WxClient_Edition(){     $user_agent = $_SERVER['HTTP_USER_AGENT'];     preg_match('/.*?(MicroMessenger\/([0-9.]+))\s*/', $user_agent, $matches);     return $matches[2]; }

留意:有些微信的付出成果,在低版本的微信上是无法实现的,好比JSAPI付出等。所以我们要获得当前用户所利用的微信版本号,以便来做一些兼容性的法子。

js判定当前页面是否在微信欣赏器中打开

代码1:

var ua = navigator.userAgent.toLowerCase(); var isWeixin = ua.indexOf('micromessenger') != -1; if (isWeixin) {     return true; }else{     return false; }

代码2:

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

代码3:

var is_weixin = (function(){return navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1})(); if(is_weixin){     $(function(){         return true;     }); }else{     $(function(){         return false;     }); }

以上三段JS代码,都可以判定出当前出网页当前的欣赏器情况是否为微信内置欣赏器,所以用哪段代码,结果都是一样的。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9040.html