使用JavaScript脚本判断页面是否在微信中被打开
1、根据User-Agent判断
//Js获取User-Agent window.navigator.userAgent if(window.navigator.userAgent.match(/MicroMessenger/i)=="micromessenger") //Php获取User-Agent echo$_SERVER['HTTP_USER_AGENT']; if(strpos($_SERVER['HTTP_USER_AGENT'],'MicroMessenger')==true) //微信内部打开获取到的User-Agent Mozilla/5.0(Linux;U;Android5.0.2;zh-cn;MI2SBuild/LRX22G)AppleWebKit/533.1(KHTML,likeGecko)Version/4.0MQQBrowser/5.4TBS/025488MobileSafari/533.1MicroMessenger/6.3.9.48_refecd3e.700NetType/WIFILanguage/zh_CN
2、Url地址判断
//你网页正常的url是 https://forum.xxx.com/home.php?view=2015 //使用微信打开会在url后面添加几个参数 https://forum.xxx.com/home.php?view=2015&from=timeline&isappinstalled=0
3、使用weixin-web-js判断是否是微信
!function(a,b){ "function"==typeofdefine&&(define.amd||define.cmd)?define(function(){ returnb(a) }):b(a,!0) }(this,function(a,b){ functionc(b,c,d){ a.WeixinJSBridge?WeixinJSBridge.invoke(b,e(c),function(a){ g(b,a,d) }):j(b,d) } functiond(b,c,d){ a.WeixinJSBridge?WeixinJSBridge.on(b,function(a){ d&&d.trigger&&d.trigger(a),g(b,a,c) }):d?j(b,d):j(b,c) } functione(a){ returna=a||{},a.appId=E.appId,a.verifyAppId=E.appId,a.verifySignType="sha1",a.verifyTimestamp=E.timestamp+"",a.verifyNonceStr=E.nonceStr,a.verifySignature=E.signature,a } functionf(a){ return{ timeStamp:a.timestamp+"", nonceStr:a.nonceStr, "package":a.package, paySign:a.paySign, signType:a.signType||"SHA1" } } functiong(a,b,c){ vard,e,f; switch(deleteb.err_code,deleteb.err_desc,deleteb.err_detail,d=b.errMsg,d||(d=b.err_msg,deleteb.err_msg,d=h(a,d),b.errMsg=d),c=c||{},c._complete&&(c._complete(b),deletec._complete),d=b.errMsg||"",E.debug&&!c.isInnerInvoke&&alert(JSON.stringify(b)),e=d.indexOf(":"),f=d.substring(e+1)){ case"ok": c.success&&c.success(b); break; case"cancel": c.cancel&&c.cancel(b); break; default: c.fail&&c.fail(b) } c.complete&&c.complete(b) } functionh(a,b){ vare,f,c=a, d=p[c]; returnd&&(c=d),e="ok",b&&(f=b.indexOf(":"),e=b.substring(f+1),"confirm"==e&&(e="ok"),"failed"==e&&(e="fail"),-1!=e.indexOf("failed_")&&(e=e.substring(7)),-1!=e.indexOf("fail_")&&(e=e.substring(5)),e=e.replace(/_/g,""),e=e.toLowerCase(),("accessdenied"==e||"nopermissiontoexecute"==e)&&(e="permissiondenied"),"config"==c&&"functionnotexist"==e&&(e="ok"),""==e&&(e="fail")),b=c+":"+e } functioni(a){ varb,c,d,e; if(a){ for(b=0,c=a.length;c>b;++b)d=a[b],e=o[d],e&&(a[b]=e); returna } } functionj(a,b){ if(!(!E.debug||b&&b.isInnerInvoke)){ varc=p[a]; c&&(a=c),b&&b._complete&&deleteb._complete,console.log('"'+a+'",',b||"") } } functionk(){ 0!=D.preVerifyState&&(u||v||E.debug||"6.0.2">z||D.systemType<0||A||(A=!0,D.appId=E.appId,D.initTime=C.initEndTime-C.initStartTime,D.preVerifyTime=C.preVerifyEndTime-C.preVerifyStartTime,H.getNetworkType({ isInnerInvoke:!0, success:function(a){ varb,c; D.networkType=a.networkType,b="http://open.weixin.qq.com/sdk/report?v="+D.version+"&o="+D.preVerifyState+"&s="+D.systemType+"&c="+D.clientVersion+"&a="+D.appId+"&n="+D.networkType+"&i="+D.initTime+"&p="+D.preVerifyTime+"&u="+D.url,c=newImage,c.src=b } }))) } functionl(){ return(newDate).getTime() } functionm(b){ w&&(a.WeixinJSBridge?b():q.addEventListener&&q.addEventListener("WeixinJSBridgeReady",b,!1)) } functionn(){ H.invoke||(H.invoke=function(b,c,d){ a.WeixinJSBridge&&WeixinJSBridge.invoke(b,e(c),d) },H.on=function(b,c){ a.WeixinJSBridge&&WeixinJSBridge.on(b,c) }) } varo,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H; if(!a.jWeixin)returno={ config:"preVerifyJSAPI", onMenuShareTimeline:"menu:share:timeline", onMenuShareAppMessage:"menu:share:appmessage", onMenuShareQQ:"menu:share:qq", onMenuShareWeibo:"menu:share:weiboApp", onMenuShareQZone:"menu:share:QZone", previewImage:"imagePreview", getLocation:"geoLocation", openProductSpecificView:"openProductViewWithPid", addCard:"batchAddCard", openCard:"batchViewCard", chooseWXPay:"getBrandWCPayRequest" },p=function(){ varb,a={}; for(bino)a[o[b]]=b; returna }(),q=a.document,r=q.title,s=navigator.userAgent.toLowerCase(),t=navigator.platform.toLowerCase(),u=!(!t.match("mac")&&!t.match("win")),v=-1!=s.indexOf("wxdebugger"),w=-1!=s.indexOf("micromessenger"),x=-1!=s.indexOf("android"),y=-1!=s.indexOf("iphone")||-1!=s.indexOf("ipad"),z=function(){ vara=s.match(/micromessenger\/(\d+\.\d+\.\d+)/)||s.match(/micromessenger\/(\d+\.\d+)/); returna?a[1]:"" }(),A=!1,B=!1,C={ initStartTime:l(), initEndTime:0, preVerifyStartTime:0, preVerifyEndTime:0 },D={ version:1, appId:"", initTime:0, preVerifyTime:0, networkType:"", preVerifyState:1, systemType:y?1:x?2:-1, clientVersion:z, url:encodeURIComponent(location.href) },E={},F={ _completes:[] },G={ state:0, data:{} },m(function(){ C.initEndTime=l() }),H={ config:function(a){ E=a,j("config",a); varb=E.check===!1?!1:!0; m(function(){ vara,d,e; if(b)c(o.config,{ verifyJsApiList:i(E.jsApiList) },function(){ F._complete=function(a){ C.preVerifyEndTime=l(),G.state=1,G.data=a },F.success=function(){ D.preVerifyState=0 },F.fail=function(a){ F._fail?F._fail(a):G.state=-1 }; vara=F._completes; returna.push(function(){ k() }),F.complete=function(){ for(varc=0,d=a.length;d>c;++c)a[c](); F._completes=[] },F }()),C.preVerifyStartTime=l(); else{ for(G.state=1,a=F._completes,d=0,e=a.length;e>d;++d)a[d](); F._completes=[] } }),E.beta&&n() }, ready:function(a){ 0!=G.state?a():(F._completes.push(a),!w&&E.debug&&a()) }, error:function(a){ "6.0.2">z||B||(B=!0,-1==G.state?a(G.data):F._fail=a) }, checkJsApi:function(a){ varb=function(a){ varc,d,b=a.checkResult; for(cinb)d=p[c],d&&(b[d]=b[c],deleteb[c]); returna }; c("checkJsApi",{ jsApiList:i(a.jsApiList) },function(){ returna._complete=function(a){ if(x){ varc=a.checkResult; c&&(a.checkResult=JSON.parse(c)) } a=b(a) },a }()) }, onMenuShareTimeline:function(a){ d(o.onMenuShareTimeline,{ complete:function(){ c("shareTimeline",{ title:a.title||r, desc:a.title||r, img_url:a.imgUrl||"", link:a.link||location.href, type:a.type||"link", data_url:a.dataUrl||"" },a) } },a) }, onMenuShareAppMessage:function(a){ d(o.onMenuShareAppMessage,{ complete:function(){ c("sendAppMessage",{ title:a.title||r, desc:a.desc||"", link:a.link||location.href, img_url:a.imgUrl||"", type:a.type||"link", data_url:a.dataUrl||"" },a) } },a) }, onMenuShareQQ:function(a){ d(o.onMenuShareQQ,{ complete:function(){ c("shareQQ",{ title:a.title||r, desc:a.desc||"", img_url:a.imgUrl||"", link:a.link||location.href },a) } },a) }, onMenuShareWeibo:function(a){ d(o.onMenuShareWeibo,{ complete:function(){ c("shareWeiboApp",{ title:a.title||r, desc:a.desc||"", img_url:a.imgUrl||"", link:a.link||location.href },a) } },a) }, onMenuShareQZone:function(a){ d(o.onMenuShareQZone,{ complete:function(){ c("shareQZone",{ title:a.title||r, desc:a.desc||"", img_url:a.imgUrl||"", link:a.link||location.href },a) } },a) }, startRecord:function(a){ c("startRecord",{},a) }, stopRecord:function(a){ c("stopRecord",{},a) }, onVoiceRecordEnd:function(a){ d("onVoiceRecordEnd",a) }, playVoice:function(a){ c("playVoice",{ localId:a.localId },a) }, pauseVoice:function(a){ c("pauseVoice",{ localId:a.localId },a) }, stopVoice:function(a){ c("stopVoice",{ localId:a.localId },a) }, onVoicePlayEnd:function(a){ d("onVoicePlayEnd",a) }, uploadVoice:function(a){ c("uploadVoice",{ localId:a.localId, isShowProgressTips:0==a.isShowProgressTips?0:1 },a) }, downloadVoice:function(a){ c("downloadVoice",{ serverId:a.serverId, isShowProgressTips:0==a.isShowProgressTips?0:1 },a) }, translateVoice:function(a){ c("translateVoice",{ localId:a.localId, isShowProgressTips:0==a.isShowProgressTips?0:1 },a) }, chooseImage:function(a){ c("chooseImage",{ scene:"1|2", count:a.count||9, sizeType:a.sizeType||["original","compressed"], sourceType:a.sourceType||["album","camera"] },function(){ returna._complete=function(a){ if(x){ varb=a.localIds; b&&(a.localIds=JSON.parse(b)) } },a }()) }, previewImage:function(a){ c(o.previewImage,{ current:a.current, urls:a.urls },a) }, uploadImage:function(a){ c("uploadImage",{ localId:a.localId, isShowProgressTips:0==a.isShowProgressTips?0:1 },a) }, downloadImage:function(a){ c("downloadImage",{ serverId:a.serverId, isShowProgressTips:0==a.isShowProgressTips?0:1 },a) }, getNetworkType:function(a){ varb=function(a){ varc,d,e,b=a.errMsg; if(a.errMsg="getNetworkType:ok",c=a.subtype,deletea.subtype,c)a.networkType=c; elseswitch(d=b.indexOf(":"),e=b.substring(d+1)){ case"wifi": case"edge": case"wwan": a.networkType=e; break; default: a.errMsg="getNetworkType:fail" } returna }; c("getNetworkType",{},function(){ returna._complete=function(a){ a=b(a) },a }()) }, openLocation:function(a){ c("openLocation",{ latitude:a.latitude, longitude:a.longitude, name:a.name||"", address:a.address||"", scale:a.scale||28, infoUrl:a.infoUrl||"" },a) }, getLocation:function(a){ a=a||{},c(o.getLocation,{ type:a.type||"wgs84" },function(){ returna._complete=function(a){ deletea.type },a }()) }, hideOptionMenu:function(a){ c("hideOptionMenu",{},a) }, showOptionMenu:function(a){ c("showOptionMenu",{},a) }, closeWindow:function(a){ a=a||{},c("closeWindow",{},a) }, hideMenuItems:function(a){ c("hideMenuItems",{ menuList:a.menuList },a) }, showMenuItems:function(a){ c("showMenuItems",{ menuList:a.menuList },a) }, hideAllNonBaseMenuItem:function(a){ c("hideAllNonBaseMenuItem",{},a) }, showAllNonBaseMenuItem:function(a){ c("showAllNonBaseMenuItem",{},a) }, scanQRCode:function(a){ a=a||{},c("scanQRCode",{ needResult:a.needResult||0, scanType:a.scanType||["qrCode","barCode"] },function(){ returna._complete=function(a){ varb,c; y&&(b=a.resultStr,b&&(c=JSON.parse(b),a.resultStr=c&&c.scan_code&&c.scan_code.scan_result)) },a }()) }, openProductSpecificView:function(a){ c(o.openProductSpecificView,{ pid:a.productId, view_type:a.viewType||0, ext_info:a.extInfo },a) }, addCard:function(a){ vare,f,g,h,b=a.cardList, d=[]; for(e=0,f=b.length;f>e;++e)g=b[e],h={ card_id:g.cardId, card_ext:g.cardExt },d.push(h); c(o.addCard,{ card_list:d },function(){ returna._complete=function(a){ varc,d,e,b=a.card_list; if(b){ for(b=JSON.parse(b),c=0,d=b.length;d>c;++c)e=b[c],e.cardId=e.card_id,e.cardExt=e.card_ext,e.isSuccess=e.is_succ?!0:!1,deletee.card_id,deletee.card_ext,deletee.is_succ; a.cardList=b,deletea.card_list } },a }()) }, chooseCard:function(a){ c("chooseCard",{ app_id:E.appId, location_id:a.shopId||"", sign_type:a.signType||"SHA1", card_id:a.cardId||"", card_type:a.cardType||"", card_sign:a.cardSign, time_stamp:a.timestamp+"", nonce_str:a.nonceStr },function(){ returna._complete=function(a){ a.cardList=a.choose_card_info,deletea.choose_card_info },a }()) }, openCard:function(a){ vare,f,g,h,b=a.cardList, d=[]; for(e=0,f=b.length;f>e;++e)g=b[e],h={ card_id:g.cardId, code:g.code },d.push(h); c(o.openCard,{ card_list:d },a) }, chooseWXPay:function(a){ c(o.chooseWXPay,f(a),a) } },b&&(a.wx=a.jWeixin=H),H });