使用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>