使用PHP和JavaScript判断请求是否来自微信内浏览器
微信浏览器的HTTP_USER_AGENT
在iPhone下,返回
Mozilla/5.0(iPhone;CPUiPhoneOS5_1likeMacOSX)AppleWebKit/534.46(KHTML,likeGecko)Mobile/9B176MicroMessenger/4.3.2)
在Android下,返回
Mozilla/5.0(Linux;U;Android2.3.6;zh-cn;GT-S5660Build/GINGERBREAD)AppleWebKit/533.1(KHTML,likeGecko)Version/4.0MobileSafari/533.1MicroMessenger/4.5.255)
不难发现微信浏览器为MicroMessenger,并且有版本号,也可以判断手机类型为iPhone还是Android
如果要做盗链
if(strpos($_SERVER["HTTP_USER_AGENT"],"MicroMessenger"))
echo"Welcometowechatword";
else
echo"http/1.1401Unauthorized";
publicfunctionis_weixin(){
if(strpos($_SERVER['HTTP_USER_AGENT'],'MicroMessenger')!==false){
returntrue;
}
returnfalse;
}
if($this->is_weixin()){
}else{
echo"请使用微信访问本网址。";
}
js判断
functionis_weixin(){
varua=navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger"){
returntrue;
}else{
returnfalse;
}
}
当在手机端判断到微信浏览器之后,可以使用微信的分享js脚本对其进行处理,大家可以参考微信的官方文档,这里提供一个案例,了解下大概流程和思路
<scripttype="text/javascript"src="/jslib/wx_share.js"></script>
<script>
//分享链接时给其重写分享的标题、缩略图、链接、简介等
varimgUrl='<?phpechobase_url('/images/per.png');?>';
varlineLink='http://www.baidu.com/';
varshareTitle='我来给你送钱了';
vardescContent='折射率,你知道是啥?';
vartimeline_title='timeline_title';
varappid='';
</script>
<script>
functiononBridgeReady(){
WeixinJSBridge.call('showOptionMenu');
}
</script>
<script>
if(typeofWeixinJSBridge=="undefined"){
if(document.addEventListener){
document.addEventListener('WeixinJSBridgeReady',onBridgeReady,false);
}elseif(document.attachEvent){
document.attachEvent('WeixinJSBridgeReady',onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady',onBridgeReady);
}
}else{
onBridgeReady();
}
</script>
</head>