765 lines
29 KiB
JavaScript
765 lines
29 KiB
JavaScript
((e, n) => {
|
||
"function" == typeof define && (define.amd || define.cmd) ? define(function () {
|
||
return n(e)
|
||
}) : n(e, !0)
|
||
})(this, function (r, e) {
|
||
var a, c, n, i, t, o, s, d, l, u, p, f, m, g, h, S, y, I, v, _, w, T;
|
||
if (!r.jWeixin) return a = {
|
||
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",
|
||
openEnterpriseRedPacket: "getRecevieBizHongBaoRequest",
|
||
startSearchBeacons: "startMonitoringBeacons",
|
||
stopSearchBeacons: "stopMonitoringBeacons",
|
||
onSearchBeacons: "onBeaconsInRange",
|
||
consumeAndShareCard: "consumedShareCard",
|
||
openAddress: "editAddress"
|
||
}, c = (() => {
|
||
var e, n = {};
|
||
for (e in a) n[a[e]] = e;
|
||
return n
|
||
})(), i = (n = r.document).title, t = navigator.userAgent.toLowerCase(), f = navigator.platform.toLowerCase(), o = !(!f.match("mac") && !f.match("win")), s = -1 != t.indexOf("wxdebugger"), d = -1 != t.indexOf("micromessenger"), l = -1 != t.indexOf("android"), u = -1 != t.indexOf("iphone") || -1 != t.indexOf("ipad"), p = (f = t.match(/micromessenger\/(\d+\.\d+\.\d+)/) || t.match(/micromessenger\/(\d+\.\d+)/)) ? f[1] : "", m = {
|
||
initStartTime: L(),
|
||
initEndTime: 0,
|
||
preVerifyStartTime: 0,
|
||
preVerifyEndTime: 0
|
||
}, g = {
|
||
version: 1,
|
||
appId: "",
|
||
initTime: 0,
|
||
preVerifyTime: 0,
|
||
networkType: "",
|
||
isPreVerifyOk: 1,
|
||
systemType: u ? 1 : l ? 2 : -1,
|
||
clientVersion: p,
|
||
url: encodeURIComponent(location.href)
|
||
}, h = {}, S = {
|
||
_completes: []
|
||
}, y = {
|
||
state: 0,
|
||
data: {}
|
||
}, O(function () {
|
||
m.initEndTime = L()
|
||
}), I = !1, v = [], _ = {
|
||
config: function (e) {
|
||
C("config", h = e);
|
||
var o = !1 !== h.check;
|
||
O(function () {
|
||
if (o) k(a.config, {
|
||
verifyJsApiList: A(h.jsApiList),
|
||
verifyOpenTagList: A(h.openTagList)
|
||
}, (S._complete = function (e) {
|
||
m.preVerifyEndTime = L(), y.state = 1, y.data = e
|
||
}, S.success = function (e) {
|
||
g.isPreVerifyOk = 0
|
||
}, S.fail = function (e) {
|
||
S._fail ? S._fail(e) : y.state = -1
|
||
}, (t = S._completes).push(function () {
|
||
B()
|
||
}), S.complete = function (e) {
|
||
for (var n = 0, i = t.length; n < i; ++n) t[n]();
|
||
S._completes = []
|
||
}, S)), m.preVerifyStartTime = L();
|
||
else {
|
||
y.state = 1;
|
||
for (var e = S._completes, n = 0, i = e.length; n < i; ++n) e[n]();
|
||
S._completes = []
|
||
}
|
||
var t
|
||
}), _.invoke || (_.invoke = function (e, n, i) {
|
||
r.WeixinJSBridge && WeixinJSBridge.invoke(e, P(n), i)
|
||
}, _.on = function (e, n) {
|
||
r.WeixinJSBridge && WeixinJSBridge.on(e, n)
|
||
})
|
||
},
|
||
ready: function (e) {
|
||
(0 != y.state || (S._completes.push(e), !d && h.debug)) && e()
|
||
},
|
||
error: function (e) {
|
||
p < "6.0.2" || (-1 == y.state ? e(y.data) : S._fail = e)
|
||
},
|
||
checkJsApi: function (e) {
|
||
k("checkJsApi", {
|
||
jsApiList: A(e.jsApiList)
|
||
}, (e._complete = function (e) {
|
||
l && (i = e.checkResult) && (e.checkResult = JSON.parse(i));
|
||
var n, i = e,
|
||
t = i.checkResult;
|
||
for (n in t) {
|
||
var o = c[n];
|
||
o && (t[o] = t[n], delete t[n])
|
||
}
|
||
}, e))
|
||
},
|
||
onMenuShareTimeline: function (e) {
|
||
M(a.onMenuShareTimeline, {
|
||
complete: function () {
|
||
k("shareTimeline", {
|
||
title: e.title || i,
|
||
desc: e.title || i,
|
||
img_url: e.imgUrl || "",
|
||
link: e.link || location.href,
|
||
type: e.type || "link",
|
||
data_url: e.dataUrl || ""
|
||
}, e)
|
||
}
|
||
}, e)
|
||
},
|
||
onMenuShareAppMessage: function (n) {
|
||
M(a.onMenuShareAppMessage, {
|
||
complete: function (e) {
|
||
"favorite" === e.scene ? k("sendAppMessage", {
|
||
title: n.title || i,
|
||
desc: n.desc || "",
|
||
link: n.link || location.href,
|
||
img_url: n.imgUrl || "",
|
||
type: n.type || "link",
|
||
data_url: n.dataUrl || ""
|
||
}) : k("sendAppMessage", {
|
||
title: n.title || i,
|
||
desc: n.desc || "",
|
||
link: n.link || location.href,
|
||
img_url: n.imgUrl || "",
|
||
type: n.type || "link",
|
||
data_url: n.dataUrl || ""
|
||
}, n)
|
||
}
|
||
}, n)
|
||
},
|
||
onMenuShareQQ: function (e) {
|
||
M(a.onMenuShareQQ, {
|
||
complete: function () {
|
||
k("shareQQ", {
|
||
title: e.title || i,
|
||
desc: e.desc || "",
|
||
img_url: e.imgUrl || "",
|
||
link: e.link || location.href
|
||
}, e)
|
||
}
|
||
}, e)
|
||
},
|
||
onMenuShareWeibo: function (e) {
|
||
M(a.onMenuShareWeibo, {
|
||
complete: function () {
|
||
k("shareWeiboApp", {
|
||
title: e.title || i,
|
||
desc: e.desc || "",
|
||
img_url: e.imgUrl || "",
|
||
link: e.link || location.href
|
||
}, e)
|
||
}
|
||
}, e)
|
||
},
|
||
onMenuShareQZone: function (e) {
|
||
M(a.onMenuShareQZone, {
|
||
complete: function () {
|
||
k("shareQZone", {
|
||
title: e.title || i,
|
||
desc: e.desc || "",
|
||
img_url: e.imgUrl || "",
|
||
link: e.link || location.href
|
||
}, e)
|
||
}
|
||
}, e)
|
||
},
|
||
updateTimelineShareData: function (e) {
|
||
k("updateTimelineShareData", {
|
||
title: e.title,
|
||
link: e.link,
|
||
imgUrl: e.imgUrl
|
||
}, e)
|
||
},
|
||
updateAppMessageShareData: function (e) {
|
||
k("updateAppMessageShareData", {
|
||
title: e.title,
|
||
desc: e.desc,
|
||
link: e.link,
|
||
imgUrl: e.imgUrl
|
||
}, e)
|
||
},
|
||
startRecord: function (e) {
|
||
k("startRecord", {}, e)
|
||
},
|
||
stopRecord: function (e) {
|
||
k("stopRecord", {}, e)
|
||
},
|
||
onVoiceRecordEnd: function (e) {
|
||
M("onVoiceRecordEnd", e)
|
||
},
|
||
playVoice: function (e) {
|
||
k("playVoice", {
|
||
localId: e.localId
|
||
}, e)
|
||
},
|
||
pauseVoice: function (e) {
|
||
k("pauseVoice", {
|
||
localId: e.localId
|
||
}, e)
|
||
},
|
||
stopVoice: function (e) {
|
||
k("stopVoice", {
|
||
localId: e.localId
|
||
}, e)
|
||
},
|
||
onVoicePlayEnd: function (e) {
|
||
M("onVoicePlayEnd", e)
|
||
},
|
||
uploadVoice: function (e) {
|
||
k("uploadVoice", {
|
||
localId: e.localId,
|
||
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
|
||
}, e)
|
||
},
|
||
downloadVoice: function (e) {
|
||
k("downloadVoice", {
|
||
serverId: e.serverId,
|
||
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
|
||
}, e)
|
||
},
|
||
translateVoice: function (e) {
|
||
k("translateVoice", {
|
||
localId: e.localId,
|
||
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
|
||
}, e)
|
||
},
|
||
chooseImage: function (e) {
|
||
k("chooseImage", {
|
||
scene: "1|2",
|
||
count: e.count || 9,
|
||
sizeType: e.sizeType || ["original", "compressed"],
|
||
sourceType: e.sourceType || ["album", "camera"]
|
||
}, (e._complete = function (e) {
|
||
if (l) {
|
||
var n = e.localIds;
|
||
try {
|
||
n && (e.localIds = JSON.parse(n))
|
||
} catch (e) {}
|
||
}
|
||
}, e))
|
||
},
|
||
getLocation: function (e) {},
|
||
getLocation: function (e) {
|
||
e = e || {}, k(a.getLocation, {
|
||
type: e.type || "wgs84"
|
||
}, (e._complete = function (e) {
|
||
delete e.type
|
||
}, e))
|
||
},
|
||
previewImage: function (e) {
|
||
k(a.previewImage, {
|
||
current: e.current,
|
||
urls: e.urls
|
||
}, e)
|
||
},
|
||
uploadImage: function (e) {
|
||
k("uploadImage", {
|
||
localId: e.localId,
|
||
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
|
||
}, e)
|
||
},
|
||
downloadImage: function (e) {
|
||
k("downloadImage", {
|
||
serverId: e.serverId,
|
||
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
|
||
}, e)
|
||
},
|
||
getLocalImgData: function (e) {
|
||
!1 === I ? (I = !0, k("getLocalImgData", {
|
||
localId: e.localId
|
||
}, (e._complete = function (e) {
|
||
var n;
|
||
I = !1, 0 < v.length && (n = v.shift(), wx.getLocalImgData(n))
|
||
}, e))) : v.push(e)
|
||
},
|
||
getNetworkType: function (e) {
|
||
k("getNetworkType", {}, (e._complete = function (e) {
|
||
var n = e,
|
||
e = n.errMsg,
|
||
i = (n.errMsg = "getNetworkType:ok", n.subtype);
|
||
if (delete n.subtype, i) n.networkType = i;
|
||
else {
|
||
var i = e.indexOf(":"),
|
||
t = e.substring(i + 1);
|
||
switch (t) {
|
||
case "wifi":
|
||
case "edge":
|
||
case "wwan":
|
||
n.networkType = t;
|
||
break;
|
||
default:
|
||
n.errMsg = "getNetworkType:fail"
|
||
}
|
||
}
|
||
}, e))
|
||
},
|
||
openLocation: function (e) {
|
||
k("openLocation", {
|
||
latitude: e.latitude,
|
||
longitude: e.longitude,
|
||
name: e.name || "",
|
||
address: e.address || "",
|
||
scale: e.scale || 28,
|
||
infoUrl: e.infoUrl || ""
|
||
}, e)
|
||
},
|
||
hideOptionMenu: function (e) {
|
||
k("hideOptionMenu", {}, e)
|
||
},
|
||
showOptionMenu: function (e) {
|
||
k("showOptionMenu", {}, e)
|
||
},
|
||
closeWindow: function (e) {
|
||
k("closeWindow", {}, e = e || {})
|
||
},
|
||
hideMenuItems: function (e) {
|
||
k("hideMenuItems", {
|
||
menuList: e.menuList
|
||
}, e)
|
||
},
|
||
showMenuItems: function (e) {
|
||
k("showMenuItems", {
|
||
menuList: e.menuList
|
||
}, e)
|
||
},
|
||
hideAllNonBaseMenuItem: function (e) {
|
||
k("hideAllNonBaseMenuItem", {}, e)
|
||
},
|
||
showAllNonBaseMenuItem: function (e) {
|
||
k("showAllNonBaseMenuItem", {}, e)
|
||
},
|
||
scanQRCode: function (e) {
|
||
k("scanQRCode", {
|
||
needResult: (e = e || {}).needResult || 0,
|
||
scanType: e.scanType || ["qrCode", "barCode"]
|
||
}, (e._complete = function (e) {
|
||
var n;
|
||
u && (n = e.resultStr) && (n = JSON.parse(n), e.resultStr = n && n.scan_code && n.scan_code.scan_result)
|
||
}, e))
|
||
},
|
||
openAddress: function (e) {
|
||
k(a.openAddress, {}, (e._complete = function (e) {
|
||
(e = e).postalCode = e.addressPostalCode, delete e.addressPostalCode, e.provinceName = e.proviceFirstStageName, delete e.proviceFirstStageName, e.cityName = e.addressCitySecondStageName, delete e.addressCitySecondStageName, e.countryName = e.addressCountiesThirdStageName, delete e.addressCountiesThirdStageName, e.detailInfo = e.addressDetailInfo, delete e.addressDetailInfo
|
||
}, e))
|
||
},
|
||
openProductSpecificView: function (e) {
|
||
k(a.openProductSpecificView, {
|
||
pid: e.productId,
|
||
view_type: e.viewType || 0,
|
||
ext_info: e.extInfo
|
||
}, e)
|
||
},
|
||
addCard: function (e) {
|
||
for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
|
||
var r = n[t],
|
||
r = {
|
||
card_id: r.cardId,
|
||
card_ext: r.cardExt
|
||
};
|
||
i.push(r)
|
||
}
|
||
k(a.addCard, {
|
||
card_list: i
|
||
}, (e._complete = function (e) {
|
||
if (n = e.card_list) {
|
||
for (var n, i = 0, t = (n = JSON.parse(n)).length; i < t; ++i) {
|
||
var o = n[i];
|
||
o.cardId = o.card_id, o.cardExt = o.card_ext, o.isSuccess = !!o.is_succ, delete o.card_id, delete o.card_ext, delete o.is_succ
|
||
}
|
||
e.cardList = n, delete e.card_list
|
||
}
|
||
}, e))
|
||
},
|
||
chooseCard: function (e) {
|
||
k("chooseCard", {
|
||
app_id: h.appId,
|
||
location_id: e.shopId || "",
|
||
sign_type: e.signType || "SHA1",
|
||
card_id: e.cardId || "",
|
||
card_type: e.cardType || "",
|
||
card_sign: e.cardSign,
|
||
time_stamp: e.timestamp + "",
|
||
nonce_str: e.nonceStr
|
||
}, (e._complete = function (e) {
|
||
e.cardList = e.choose_card_info, delete e.choose_card_info
|
||
}, e))
|
||
},
|
||
openCard: function (e) {
|
||
for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
|
||
var r = n[t],
|
||
r = {
|
||
card_id: r.cardId,
|
||
code: r.code
|
||
};
|
||
i.push(r)
|
||
}
|
||
k(a.openCard, {
|
||
card_list: i
|
||
}, e)
|
||
},
|
||
consumeAndShareCard: function (e) {
|
||
k(a.consumeAndShareCard, {
|
||
consumedCardId: e.cardId,
|
||
consumedCode: e.code
|
||
}, e)
|
||
},
|
||
chooseWXPay: function (e) {
|
||
k(a.chooseWXPay, x(e), e), B({
|
||
jsApiName: "chooseWXPay"
|
||
})
|
||
},
|
||
openEnterpriseRedPacket: function (e) {
|
||
k(a.openEnterpriseRedPacket, x(e), e)
|
||
},
|
||
startSearchBeacons: function (e) {
|
||
k(a.startSearchBeacons, {
|
||
ticket: e.ticket
|
||
}, e)
|
||
},
|
||
stopSearchBeacons: function (e) {
|
||
k(a.stopSearchBeacons, {}, e)
|
||
},
|
||
onSearchBeacons: function (e) {
|
||
M(a.onSearchBeacons, e)
|
||
},
|
||
openEnterpriseChat: function (e) {
|
||
k("openEnterpriseChat", {
|
||
useridlist: e.userIds,
|
||
chatname: e.groupName
|
||
}, e)
|
||
},
|
||
launchMiniProgram: function (e) {
|
||
k("launchMiniProgram", {
|
||
targetAppId: e.targetAppId,
|
||
path: (e => {
|
||
var n;
|
||
if ("string" == typeof e && 0 < e.length) return n = e.split("?")[0], n += ".html", void 0 !== (e = e.split("?")[1]) ? n + "?" + e : n
|
||
})(e.path),
|
||
envVersion: e.envVersion
|
||
}, e)
|
||
},
|
||
openBusinessView: function (e) {
|
||
k("openBusinessView", {
|
||
businessType: e.businessType,
|
||
queryString: e.queryString || "",
|
||
envVersion: e.envVersion
|
||
}, (e._complete = function (n) {
|
||
if (l) {
|
||
var e = n.extraData;
|
||
if (e) try {
|
||
n.extraData = JSON.parse(e)
|
||
} catch (e) {
|
||
n.extraData = {}
|
||
}
|
||
}
|
||
}, e))
|
||
},
|
||
miniProgram: {
|
||
navigateBack: function (e) {
|
||
e = e || {}, O(function () {
|
||
k("invokeMiniProgramAPI", {
|
||
name: "navigateBack",
|
||
arg: {
|
||
delta: e.delta || 1
|
||
}
|
||
}, e)
|
||
})
|
||
},
|
||
navigateTo: function (e) {
|
||
O(function () {
|
||
k("invokeMiniProgramAPI", {
|
||
name: "navigateTo",
|
||
arg: {
|
||
url: e.url
|
||
}
|
||
}, e)
|
||
})
|
||
},
|
||
redirectTo: function (e) {
|
||
O(function () {
|
||
k("invokeMiniProgramAPI", {
|
||
name: "redirectTo",
|
||
arg: {
|
||
url: e.url
|
||
}
|
||
}, e)
|
||
})
|
||
},
|
||
switchTab: function (e) {
|
||
O(function () {
|
||
k("invokeMiniProgramAPI", {
|
||
name: "switchTab",
|
||
arg: {
|
||
url: e.url
|
||
}
|
||
}, e)
|
||
})
|
||
},
|
||
reLaunch: function (e) {
|
||
O(function () {
|
||
k("invokeMiniProgramAPI", {
|
||
name: "reLaunch",
|
||
arg: {
|
||
url: e.url
|
||
}
|
||
}, e)
|
||
})
|
||
},
|
||
postMessage: function (e) {
|
||
O(function () {
|
||
k("invokeMiniProgramAPI", {
|
||
name: "postMessage",
|
||
arg: e.data || {}
|
||
}, e)
|
||
})
|
||
},
|
||
getEnv: function (e) {
|
||
O(function () {
|
||
e({
|
||
miniprogram: "miniprogram" === r.__wxjs_environment
|
||
})
|
||
})
|
||
}
|
||
}
|
||
}, w = 1, T = {}, n.addEventListener("error", function (e) {
|
||
var n, i, t;
|
||
l || (t = (n = e.target).tagName, i = n.src, "IMG" != t && "VIDEO" != t && "AUDIO" != t && "SOURCE" != t) || -1 != i.indexOf("wxlocalresource://") && (e.preventDefault(), e.stopPropagation(), (t = n["wx-id"]) || (t = w++, n["wx-id"] = t), T[t] || (T[t] = !0, wx.ready(function () {
|
||
wx.getLocalImgData({
|
||
localId: i,
|
||
success: function (e) {
|
||
n.src = e.localData
|
||
}
|
||
})
|
||
})))
|
||
}, !0), n.addEventListener("load", function (e) {
|
||
var n;
|
||
l || (n = (e = e.target).tagName, "IMG" != n && "VIDEO" != n && "AUDIO" != n && "SOURCE" != n) || (n = e["wx-id"]) && (T[n] = !1)
|
||
}, !0), e && (r.wx = r.jWeixin = _), _;
|
||
|
||
function k(n, e, i) {
|
||
r.WeixinJSBridge ? WeixinJSBridge.invoke(n, P(e), function (e) {
|
||
V(n, e, i)
|
||
}) : C(n, i)
|
||
}
|
||
|
||
function M(n, i, t) {
|
||
r.WeixinJSBridge ? WeixinJSBridge.on(n, function (e) {
|
||
t && t.trigger && t.trigger(e), V(n, e, i)
|
||
}) : C(n, t || i)
|
||
}
|
||
|
||
function P(e) {
|
||
return (e = e || {}).appId = h.appId, e.verifyAppId = h.appId, e.verifySignType = "sha1", e.verifyTimestamp = h.timestamp + "", e.verifyNonceStr = h.nonceStr, e.verifySignature = h.signature, e
|
||
}
|
||
|
||
function x(e) {
|
||
return {
|
||
timeStamp: e.timestamp + "",
|
||
nonceStr: e.nonceStr,
|
||
package: e.package,
|
||
paySign: e.paySign,
|
||
signType: e.signType || "SHA1"
|
||
}
|
||
}
|
||
|
||
function V(e, n, i) {
|
||
"openEnterpriseChat" != e && "openBusinessView" !== e || (n.errCode = n.err_code), delete n.err_code, delete n.err_desc, delete n.err_detail;
|
||
var t = n.errMsg,
|
||
e = (t || (t = n.err_msg, delete n.err_msg, t = ((e, n) => {
|
||
var i, t = c[e];
|
||
return t && (e = t), t = "ok", n && (i = n.indexOf(":"), "access denied" != (t = (t = (t = -1 != (t = -1 != (t = "failed" == (t = "confirm" == (t = n.substring(i + 1)) ? "ok" : t) ? "fail" : t).indexOf("failed_") ? t.substring(7) : t).indexOf("fail_") ? t.substring(5) : t).replace(/_/g, " ")).toLowerCase()) && "no permission to execute" != t || (t = "permission denied"), "" == (t = "config" == e && "function not exist" == t ? "ok" : t)) && (t = "fail"), n = e + ":" + t
|
||
})(e, t), n.errMsg = t), (i = i || {})._complete && (i._complete(n), delete i._complete), t = n.errMsg || "", h.debug && !i.isInnerInvoke && alert(JSON.stringify(n)), t.indexOf(":"));
|
||
switch (t.substring(e + 1)) {
|
||
case "ok":
|
||
i.success && i.success(n);
|
||
break;
|
||
case "cancel":
|
||
i.cancel && i.cancel(n);
|
||
break;
|
||
default:
|
||
i.fail && i.fail(n)
|
||
}
|
||
i.complete && i.complete(n)
|
||
}
|
||
|
||
function A(e) {
|
||
if (e) {
|
||
for (var n = 0, i = e.length; n < i; ++n) {
|
||
var t = e[n],
|
||
t = a[t];
|
||
t && (e[n] = t)
|
||
}
|
||
return e
|
||
}
|
||
}
|
||
|
||
function C(e, n) {
|
||
var i;
|
||
!h.debug || n && n.isInnerInvoke || ((i = c[e]) && (e = i), n && n._complete && delete n._complete, console.log('"' + e + '",', n || ""))
|
||
}
|
||
|
||
function B(n) {
|
||
var i;
|
||
o || s || h.debug || p < "6.0.2" || g.systemType < 0 || (i = new Image, g.appId = h.appId, g.initTime = m.initEndTime - m.initStartTime, g.preVerifyTime = m.preVerifyEndTime - m.preVerifyStartTime, _.getNetworkType({
|
||
isInnerInvoke: !0,
|
||
success: function (e) {
|
||
g.networkType = e.networkType;
|
||
e = "https://open.weixin.qq.com/sdk/report?v=" + g.version + "&o=" + g.isPreVerifyOk + "&s=" + g.systemType + "&c=" + g.clientVersion + "&a=" + g.appId + "&n=" + g.networkType + "&i=" + g.initTime + "&p=" + g.preVerifyTime + "&u=" + g.url + "&jsapi_name=" + (n ? n.jsApiName : "");
|
||
i.src = e
|
||
}
|
||
}))
|
||
}
|
||
|
||
function L() {
|
||
return (new Date).getTime()
|
||
}
|
||
|
||
function O(e) {
|
||
d && (r.WeixinJSBridge ? e() : n.addEventListener && n.addEventListener("WeixinJSBridgeReady", e, !1))
|
||
}
|
||
});
|
||
|
||
|
||
// 业务逻辑
|
||
(function () {
|
||
var url = window.location.href.split('#')[0]
|
||
console.log('url', url);
|
||
let noncestr = Math.random().toString(36).substr(2, 15);
|
||
let time = Math.floor(Date.now() / 1000);
|
||
let currentUrl = url
|
||
fetch(`https://api.eshangtech.com/EShangApiMain/WeChat/GetJsapiTicket?appId=wxcf4dbe1815d5d872&sourcePlatform=publicprogram`, {
|
||
method: "GET",
|
||
headers: {
|
||
"Content-Type": "application/json; charset=utf-8"
|
||
}
|
||
}).then(response => response.json()).then(config => {
|
||
console.log('config', config);
|
||
fetch(`https://api.eshangtech.com/EShangApiMain/WeChat/GetConfigSignature`, {
|
||
method: "POST",
|
||
body: JSON.stringify({
|
||
jsapi_ticket: config.Result_Data,
|
||
timestamp: time,
|
||
noncestr: noncestr,
|
||
url: currentUrl,
|
||
jsApiList: ["getLocation", "scanQRCode", "openLocation"],
|
||
// "openLocation", "getLocation",
|
||
}),
|
||
headers: {
|
||
"Content-Type": "application/json; charset=utf-8"
|
||
}
|
||
}).then(response2 => response2.json()).then(config2 => {
|
||
console.log('config2', config2);
|
||
console.log('config3', JSON.stringify({
|
||
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
|
||
appId: 'wxcf4dbe1815d5d872', // 必填,公众号的唯一标识
|
||
timestamp: time, // 必填,生成签名的时间戳
|
||
nonceStr: noncestr, // 必填,生成签名的随机串
|
||
signature: config2.Result_Data, // 必填,签名
|
||
jsApiList: ["scanQRCode"] // 必填,需要使用的JS接口列表
|
||
// "openLocation", "getLocation",
|
||
}));
|
||
|
||
|
||
wx.config({
|
||
url: currentUrl,
|
||
// debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
|
||
appId: 'wxcf4dbe1815d5d872', // 必填,公众号的唯一标识
|
||
timestamp: time, // 必填,生成签名的时间戳
|
||
nonceStr: noncestr, // 必填,生成签名的随机串
|
||
signature: config2.Result_Data, // 必填,签名
|
||
jsApiList: ["getLocation", "scanQRCode", "openLocation"] // 必填,需要使用的JS接口列表
|
||
// "openLocation", "getLocation",
|
||
})
|
||
|
||
wx.ready(function () {
|
||
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
|
||
});
|
||
|
||
wx.error(function (res) {
|
||
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
|
||
});
|
||
|
||
|
||
})
|
||
})
|
||
})();
|
||
|
||
const wmyz_app = {
|
||
uniApi: (option) => {
|
||
const {
|
||
apiName,
|
||
params,
|
||
success
|
||
} = option; // 解构出 apiName 和 params
|
||
console.log('option', option);
|
||
if (apiName === 'openNewPage') {
|
||
wx.miniProgram.navigateTo({
|
||
url: `/pages/thirdParty/newPage?url=${params.url}&title=${params.title}`
|
||
});
|
||
} else if (apiName === 'navigateBack') {
|
||
wx.miniProgram.navigateBack({
|
||
delta: 1
|
||
});
|
||
} else if (apiName === 'getLocation') {
|
||
wx.getLocation({
|
||
type: params.type,
|
||
success: function (res) {
|
||
params.success(res)
|
||
}
|
||
})
|
||
} else if (apiName === 'scanCode') {
|
||
wx.scanQRCode({
|
||
needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
|
||
scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
|
||
success: function (res) {
|
||
params.success(res)
|
||
}
|
||
})
|
||
} else if (apiName === 'openLocation') {
|
||
wx.openLocation({
|
||
latitude: Number(params.latitude), // 纬度,浮点数,范围为90 ~ -90
|
||
longitude: Number(params.longitude), // 经度,浮点数,范围为180 ~ -180。
|
||
name: params.name, // 位置名
|
||
address: '', // 地址详情说明
|
||
scale: 16, // 地图缩放级别,整型值,范围从1~28。默认为最大
|
||
infoUrl: '', // 在查看位置界面底部显示的超链接,可点击跳转
|
||
fail: function (res) {
|
||
params.success(res)
|
||
}
|
||
})
|
||
} else if (apiName === 'getStorageSync') {
|
||
return new Promise((resolve, reject) => {
|
||
try {
|
||
let res = ''
|
||
if (params === 'userInfo') {
|
||
res = window.location.href.split('#')[1]
|
||
}
|
||
resolve(success({
|
||
MEMBERSHIP_MOBILEPHONE: res
|
||
}));
|
||
} catch (error) {
|
||
reject(error); // 捕获并返回错误
|
||
}
|
||
});
|
||
}
|
||
}
|
||
};
|
||
|
||
window.wmyz_app = wmyz_app;
|
||
|
||
// wx.config({
|
||
// debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
|
||
// appId: 'wx4c497eddcec4a0e7', // 必填,公众号的唯一标识
|
||
// timestamp: '', // 必填,生成签名的时间戳
|
||
// nonceStr: '', // 必填,生成签名的随机串
|
||
// signature: '', // 必填,签名
|
||
// jsApiList: [] // 必填,需要使用的JS接口列表
|
||
// });
|