Welcome 微信登录

首页 / 脚本样式 / JavaScript / 使用JavaScript脚本判断页面是否在微信中被打开

1、根据User-Agent判断
// Js获取User-Agent window.navigator.userAgentif(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; Android 5.0.2; zh-cn; MI 2S Build/LRX22G) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.4 TBS/025488 Mobile Safari/533.1 MicroMessenger/6.3.9.48_refecd3e.700 NetType/WIFI Language/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" == typeof define && (define.amd || define.cmd) ? define(function() {return b(a)}) : b(a, !0)}(this, function(a, b) {function c(b, c, d) {a.WeixinJSBridge ? WeixinJSBridge.invoke(b, e(c), function(a) {g(b, a, d)}) : j(b, d)}function d(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)}function e(a) {return a = 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}function f(a) {return {timeStamp: a.timestamp + "",nonceStr: a.nonceStr,"package": a.package,paySign: a.paySign,signType: a.signType || "SHA1"}}function g(a, b, c) {var d, e, f;switch (delete b.err_code, delete b.err_desc, delete b.err_detail, d = b.errMsg, d || (d = b.err_msg, delete b.err_msg, d = h(a, d), b.errMsg = d), c = c || {}, c._complete && (c._complete(b), delete c._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)}function h(a, b) {var e, f, c = a,d = p[c];return d && (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(), ("access denied" == e || "no permission to execute" == e) && (e = "permission denied"), "config" == c && "function not exist" == e && (e = "ok"), "" == e && (e = "fail")), b = c + ":" + e}function i(a) {var b, c, d, e;if (a) {for (b = 0, c = a.length; c > b; ++b) d = a[b], e = o[d], e && (a[b] = e);return a}}function j(a, b) {if (!(!E.debug || b && b.isInnerInvoke)) {var c = p[a];c && (a = c), b && b._complete && delete b._complete, console.log(""" + a + "",", b || "")}}function k() {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) {var b, 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 = new Image, c.src = b}})))}function l() {return (new Date).getTime()}function m(b) {w && (a.WeixinJSBridge ? b() : q.addEventListener && q.addEventListener("WeixinJSBridgeReady", b, !1))}function n() {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)})}var o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H;if (!a.jWeixin) return o = {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() {var b, a = {};for (b in o) a[o[b]] = b;return a}(), 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() {var a = s.match(/micromessenger/(d+.d+.d+)/) || s.match(/micromessenger/(d+.d+)/);return a ? 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);var b = E.check === !1 ? !1 : !0;m(function() {var a, 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};var a = F._completes;return a.push(function() {k()}), F.complete = function() {for (var c = 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) {var b = function(a) {var c, d, b = a.checkResult;for (c in b) d = p[c], d && (b[d] = b[c], delete b[c]);return a};c("checkJsApi", {jsApiList: i(a.jsApiList)}, function() {return a._complete = function(a) {if (x) {var c = 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() {return a._complete = function(a) {if (x) {var b = 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) {var b = function(a) {var c, d, e, b = a.errMsg;if (a.errMsg = "getNetworkType:ok", c = a.subtype, delete a.subtype, c) a.networkType = c;else switch (d = b.indexOf(":"), e = b.substring(d + 1)) {case "wifi":case "edge":case "wwan":a.networkType = e;break;default:a.errMsg = "getNetworkType:fail"}return a};c("getNetworkType", {}, function() {return a._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() {return a._complete = function(a) {delete a.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() {return a._complete = function(a) {var b, 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) {var e, 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() {return a._complete = function(a) {var c, 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, delete e.card_id, delete e.card_ext, delete e.is_succ;a.cardList = b, delete a.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() {return a._complete = function(a) {a.cardList = a.choose_card_info, delete a.choose_card_info}, a}())},openCard: function(a) {var e, 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});