weixin.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493
  1. //#ifdef H5
  2. !function (e, n) {
  3. "object" == typeof exports && "object" == typeof module ? module.exports = n(e) : "function" == typeof define && (define.amd || define.cmd) ? define(function () {
  4. return n(e)
  5. }) : n(e, !0)
  6. }(window, function (o, e) {
  7. function c(n, e, i) {
  8. o.WeixinJSBridge ? WeixinJSBridge.invoke(n, r(e), function (e) {
  9. a(n, e, i)
  10. }) : d(n, i)
  11. }
  12. function i(n, i, t) {
  13. o.WeixinJSBridge ? WeixinJSBridge.on(n, function (e) {
  14. t && t.trigger && t.trigger(e), a(n, e, i)
  15. }) : d(n, t || i)
  16. }
  17. function r(e) {
  18. return (e = e || {}).appId = M.appId, e.verifyAppId = M.appId, e.verifySignType = "sha1", e.verifyTimestamp = M.timestamp + "", e.verifyNonceStr = M.nonceStr, e.verifySignature = M.signature, e
  19. }
  20. function n(e) {
  21. return {
  22. timeStamp: e.timestamp + "",
  23. nonceStr: e.nonceStr,
  24. package: e.package,
  25. paySign: e.paySign,
  26. signType: e.signType || "SHA1"
  27. }
  28. }
  29. function a(e, n, i) {
  30. "openEnterpriseChat" == e && (n.errCode = n.err_code), delete n.err_code, delete n.err_desc, delete n.err_detail;
  31. var t = n.errMsg;
  32. t || (t = n.err_msg, delete n.err_msg, t = function (e, n) {
  33. var i = e, t = f[i];
  34. t && (i = t);
  35. var o = "ok";
  36. if (n) {
  37. var r = n.indexOf(":");
  38. "confirm" == (o = n.substring(r + 1)) && (o = "ok"), "failed" == o && (o = "fail"), -1 != o.indexOf("failed_") && (o = o.substring(7)), -1 != o.indexOf("fail_") && (o = o.substring(5)), "access denied" != (o = (o = o.replace(/_/g, " ")).toLowerCase()) && "no permission to execute" != o || (o = "permission denied"), "config" == i && "function not exist" == o && (o = "ok"), "" == o && (o = "fail")
  39. }
  40. return n = i + ":" + o
  41. }(e, t), n.errMsg = t), (i = i || {})._complete && (i._complete(n), delete i._complete), t = n.errMsg || "", M.debug && !i.isInnerInvoke && alert(JSON.stringify(n));
  42. var o = t.indexOf(":");
  43. switch (t.substring(o + 1)) {
  44. case"ok":
  45. i.success && i.success(n);
  46. break;
  47. case"cancel":
  48. i.cancel && i.cancel(n);
  49. break;
  50. default:
  51. i.fail && i.fail(n)
  52. }
  53. i.complete && i.complete(n)
  54. }
  55. function s(e) {
  56. if (e) {
  57. for (var n = 0, i = e.length; n < i; ++n) {
  58. var t = e[n], o = p[t];
  59. o && (e[n] = o)
  60. }
  61. return e
  62. }
  63. }
  64. function d(e, n) {
  65. if (!(!M.debug || n && n.isInnerInvoke)) {
  66. var i = f[e];
  67. i && (e = i), n && n._complete && delete n._complete, console.log('"' + e + '",', n || "")
  68. }
  69. }
  70. function l() {
  71. return (new Date).getTime()
  72. }
  73. function u(e) {
  74. I && (o.WeixinJSBridge ? e() : t.addEventListener && t.addEventListener("WeixinJSBridgeReady", e, !1))
  75. }
  76. if (!o.jWeixin) {
  77. var p = {
  78. config: "preVerifyJSAPI",
  79. onMenuShareTimeline: "menu:share:timeline",
  80. onMenuShareAppMessage: "menu:share:appmessage",
  81. onMenuShareQQ: "menu:share:qq",
  82. onMenuShareWeibo: "menu:share:weiboApp",
  83. onMenuShareQZone: "menu:share:QZone",
  84. previewImage: "imagePreview",
  85. getLocation: "geoLocation",
  86. openProductSpecificView: "openProductViewWithPid",
  87. addCard: "batchAddCard",
  88. openCard: "batchViewCard",
  89. chooseWXPay: "getBrandWCPayRequest",
  90. openEnterpriseRedPacket: "getRecevieBizHongBaoRequest",
  91. startSearchBeacons: "startMonitoringBeacons",
  92. stopSearchBeacons: "stopMonitoringBeacons",
  93. onSearchBeacons: "onBeaconsInRange",
  94. consumeAndShareCard: "consumedShareCard",
  95. openAddress: "editAddress"
  96. }, f = function () {
  97. var e = {};
  98. for (var n in p) e[p[n]] = n;
  99. return e
  100. }(), t = o.document, m = t.title, g = navigator.userAgent.toLowerCase(), h = navigator.platform.toLowerCase(),
  101. v = !(!h.match("mac") && !h.match("win")), S = -1 != g.indexOf("wxdebugger"),
  102. I = -1 != g.indexOf("micromessenger"), y = -1 != g.indexOf("android"),
  103. _ = -1 != g.indexOf("iphone") || -1 != g.indexOf("ipad"),
  104. w = (O = g.match(/micromessenger\/(\d+\.\d+\.\d+)/) || g.match(/micromessenger\/(\d+\.\d+)/)) ? O[1] : "",
  105. k = {initStartTime: l(), initEndTime: 0, preVerifyStartTime: 0, preVerifyEndTime: 0}, T = {
  106. version: 1,
  107. appId: "",
  108. initTime: 0,
  109. preVerifyTime: 0,
  110. networkType: "",
  111. isPreVerifyOk: 1,
  112. systemType: _ ? 1 : y ? 2 : -1,
  113. clientVersion: w,
  114. url: encodeURIComponent(location.href)
  115. }, M = {}, P = {_completes: []}, x = {state: 0, data: {}};
  116. u(function () {
  117. k.initEndTime = l()
  118. });
  119. var A = !1, V = [], C = {
  120. config: function (e) {
  121. d("config", M = e);
  122. var t = !1 !== M.check;
  123. u(function () {
  124. if (t) c(p.config, {verifyJsApiList: s(M.jsApiList)}, function () {
  125. P._complete = function (e) {
  126. k.preVerifyEndTime = l(), x.state = 1, x.data = e
  127. }, P.success = function (e) {
  128. T.isPreVerifyOk = 0
  129. }, P.fail = function (e) {
  130. P._fail ? P._fail(e) : x.state = -1
  131. };
  132. var t = P._completes;
  133. return t.push(function () {
  134. !function (e) {
  135. if (!(v || S || M.debug || w < "6.0.2" || T.systemType < 0)) {
  136. var i = new Image;
  137. T.appId = M.appId, T.initTime = k.initEndTime - k.initStartTime, T.preVerifyTime = k.preVerifyEndTime - k.preVerifyStartTime, C.getNetworkType({
  138. isInnerInvoke: !0,
  139. success: function (e) {
  140. T.networkType = e.networkType;
  141. var n = "https://open.weixin.qq.com/sdk/report?v=" + T.version + "&o=" + T.isPreVerifyOk + "&s=" + T.systemType + "&c=" + T.clientVersion + "&a=" + T.appId + "&n=" + T.networkType + "&i=" + T.initTime + "&p=" + T.preVerifyTime + "&u=" + T.url;
  142. i.src = n
  143. }
  144. })
  145. }
  146. }()
  147. }), P.complete = function (e) {
  148. for (var n = 0, i = t.length; n < i; ++n) t[n]();
  149. P._completes = []
  150. }, P
  151. }()), k.preVerifyStartTime = l(); else {
  152. x.state = 1;
  153. for (var e = P._completes, n = 0, i = e.length; n < i; ++n) e[n]();
  154. P._completes = []
  155. }
  156. }), C.invoke || (C.invoke = function (e, n, i) {
  157. o.WeixinJSBridge && WeixinJSBridge.invoke(e, r(n), i)
  158. }, C.on = function (e, n) {
  159. o.WeixinJSBridge && WeixinJSBridge.on(e, n)
  160. })
  161. }, ready: function (e) {
  162. 0 != x.state ? e() : (P._completes.push(e), !I && M.debug && e())
  163. }, error: function (e) {
  164. w < "6.0.2" || (-1 == x.state ? e(x.data) : P._fail = e)
  165. }, checkJsApi: function (e) {
  166. c("checkJsApi", {jsApiList: s(e.jsApiList)}, (e._complete = function (e) {
  167. if (y) {
  168. var n = e.checkResult;
  169. n && (e.checkResult = JSON.parse(n))
  170. }
  171. e = function (e) {
  172. var n = e.checkResult;
  173. for (var i in n) {
  174. var t = f[i];
  175. t && (n[t] = n[i], delete n[i])
  176. }
  177. return e
  178. }(e)
  179. }, e))
  180. }, onMenuShareTimeline: function (e) {
  181. i(p.onMenuShareTimeline, {
  182. complete: function () {
  183. c("shareTimeline", {
  184. title: e.title || m,
  185. desc: e.title || m,
  186. img_url: e.imgUrl || "",
  187. link: e.link || location.href,
  188. type: e.type || "link",
  189. data_url: e.dataUrl || ""
  190. }, e)
  191. }
  192. }, e)
  193. }, onMenuShareAppMessage: function (n) {
  194. i(p.onMenuShareAppMessage, {
  195. complete: function (e) {
  196. "favorite" === e.scene ? c("sendAppMessage", {
  197. title: n.title || m,
  198. desc: n.desc || "",
  199. link: n.link || location.href,
  200. img_url: n.imgUrl || "",
  201. type: n.type || "link",
  202. data_url: n.dataUrl || ""
  203. }) : c("sendAppMessage", {
  204. title: n.title || m,
  205. desc: n.desc || "",
  206. link: n.link || location.href,
  207. img_url: n.imgUrl || "",
  208. type: n.type || "link",
  209. data_url: n.dataUrl || ""
  210. }, n)
  211. }
  212. }, n)
  213. }, onMenuShareQQ: function (e) {
  214. i(p.onMenuShareQQ, {
  215. complete: function () {
  216. c("shareQQ", {
  217. title: e.title || m,
  218. desc: e.desc || "",
  219. img_url: e.imgUrl || "",
  220. link: e.link || location.href
  221. }, e)
  222. }
  223. }, e)
  224. }, onMenuShareWeibo: function (e) {
  225. i(p.onMenuShareWeibo, {
  226. complete: function () {
  227. c("shareWeiboApp", {
  228. title: e.title || m,
  229. desc: e.desc || "",
  230. img_url: e.imgUrl || "",
  231. link: e.link || location.href
  232. }, e)
  233. }
  234. }, e)
  235. }, onMenuShareQZone: function (e) {
  236. i(p.onMenuShareQZone, {
  237. complete: function () {
  238. c("shareQZone", {
  239. title: e.title || m,
  240. desc: e.desc || "",
  241. img_url: e.imgUrl || "",
  242. link: e.link || location.href
  243. }, e)
  244. }
  245. }, e)
  246. }, updateTimelineShareData: function (e) {
  247. c("updateTimelineShareData", {title: e.title, link: e.link, imgUrl: e.imgUrl}, e)
  248. }, updateAppMessageShareData: function (e) {
  249. c("updateAppMessageShareData", {title: e.title, desc: e.desc, link: e.link, imgUrl: e.imgUrl}, e)
  250. }, startRecord: function (e) {
  251. c("startRecord", {}, e)
  252. }, stopRecord: function (e) {
  253. c("stopRecord", {}, e)
  254. }, onVoiceRecordEnd: function (e) {
  255. i("onVoiceRecordEnd", e)
  256. }, playVoice: function (e) {
  257. c("playVoice", {localId: e.localId}, e)
  258. }, pauseVoice: function (e) {
  259. c("pauseVoice", {localId: e.localId}, e)
  260. }, stopVoice: function (e) {
  261. c("stopVoice", {localId: e.localId}, e)
  262. }, onVoicePlayEnd: function (e) {
  263. i("onVoicePlayEnd", e)
  264. }, uploadVoice: function (e) {
  265. c("uploadVoice", {localId: e.localId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1}, e)
  266. }, downloadVoice: function (e) {
  267. c("downloadVoice", {serverId: e.serverId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1}, e)
  268. }, translateVoice: function (e) {
  269. c("translateVoice", {localId: e.localId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1}, e)
  270. }, chooseImage: function (e) {
  271. c("chooseImage", {
  272. scene: "1|2",
  273. count: e.count || 9,
  274. sizeType: e.sizeType || ["original", "compressed"],
  275. sourceType: e.sourceType || ["album", "camera"]
  276. }, (e._complete = function (e) {
  277. if (y) {
  278. var n = e.localIds;
  279. try {
  280. n && (e.localIds = JSON.parse(n))
  281. } catch (e) {
  282. }
  283. }
  284. }, e))
  285. }, getLocation: function (e) {
  286. }, previewImage: function (e) {
  287. c(p.previewImage, {current: e.current, urls: e.urls}, e)
  288. }, uploadImage: function (e) {
  289. c("uploadImage", {localId: e.localId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1}, e)
  290. }, downloadImage: function (e) {
  291. c("downloadImage", {serverId: e.serverId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1}, e)
  292. }, getLocalImgData: function (e) {
  293. !1 === A ? (A = !0, c("getLocalImgData", {localId: e.localId}, (e._complete = function (e) {
  294. if (A = !1, 0 < V.length) {
  295. var n = V.shift();
  296. wx.getLocalImgData(n)
  297. }
  298. }, e))) : V.push(e)
  299. }, getNetworkType: function (e) {
  300. c("getNetworkType", {}, (e._complete = function (e) {
  301. e = function (e) {
  302. var n = e.errMsg;
  303. e.errMsg = "getNetworkType:ok";
  304. var i = e.subtype;
  305. if (delete e.subtype, i) e.networkType = i; else {
  306. var t = n.indexOf(":"), o = n.substring(t + 1);
  307. switch (o) {
  308. case"wifi":
  309. case"edge":
  310. case"wwan":
  311. e.networkType = o;
  312. break;
  313. default:
  314. e.errMsg = "getNetworkType:fail"
  315. }
  316. }
  317. return e
  318. }(e)
  319. }, e))
  320. }, openLocation: function (e) {
  321. c("openLocation", {
  322. latitude: e.latitude,
  323. longitude: e.longitude,
  324. name: e.name || "",
  325. address: e.address || "",
  326. scale: e.scale || 28,
  327. infoUrl: e.infoUrl || ""
  328. }, e)
  329. }, getLocation: function (e) {
  330. c(p.getLocation, {type: (e = e || {}).type || "wgs84"}, (e._complete = function (e) {
  331. delete e.type
  332. }, e))
  333. }, hideOptionMenu: function (e) {
  334. c("hideOptionMenu", {}, e)
  335. }, showOptionMenu: function (e) {
  336. c("showOptionMenu", {}, e)
  337. }, closeWindow: function (e) {
  338. c("closeWindow", {}, e = e || {})
  339. }, hideMenuItems: function (e) {
  340. c("hideMenuItems", {menuList: e.menuList}, e)
  341. }, showMenuItems: function (e) {
  342. c("showMenuItems", {menuList: e.menuList}, e)
  343. }, hideAllNonBaseMenuItem: function (e) {
  344. c("hideAllNonBaseMenuItem", {}, e)
  345. }, showAllNonBaseMenuItem: function (e) {
  346. c("showAllNonBaseMenuItem", {}, e)
  347. }, scanQRCode: function (e) {
  348. c("scanQRCode", {
  349. needResult: (e = e || {}).needResult || 0,
  350. scanType: e.scanType || ["qrCode", "barCode"]
  351. }, (e._complete = function (e) {
  352. if (_) {
  353. var n = e.resultStr;
  354. if (n) {
  355. var i = JSON.parse(n);
  356. e.resultStr = i && i.scan_code && i.scan_code.scan_result
  357. }
  358. }
  359. }, e))
  360. }, openAddress: function (e) {
  361. c(p.openAddress, {}, (e._complete = function (e) {
  362. var n;
  363. (n = e).postalCode = n.addressPostalCode, delete n.addressPostalCode, n.provinceName = n.proviceFirstStageName, delete n.proviceFirstStageName, n.cityName = n.addressCitySecondStageName, delete n.addressCitySecondStageName, n.countryName = n.addressCountiesThirdStageName, delete n.addressCountiesThirdStageName, n.detailInfo = n.addressDetailInfo, delete n.addressDetailInfo, e = n
  364. }, e))
  365. }, openProductSpecificView: function (e) {
  366. c(p.openProductSpecificView, {pid: e.productId, view_type: e.viewType || 0, ext_info: e.extInfo}, e)
  367. }, addCard: function (e) {
  368. for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
  369. var r = n[t], a = {card_id: r.cardId, card_ext: r.cardExt};
  370. i.push(a)
  371. }
  372. c(p.addCard, {card_list: i}, (e._complete = function (e) {
  373. var n = e.card_list;
  374. if (n) {
  375. for (var i = 0, t = (n = JSON.parse(n)).length; i < t; ++i) {
  376. var o = n[i];
  377. 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
  378. }
  379. e.cardList = n, delete e.card_list
  380. }
  381. }, e))
  382. }, chooseCard: function (e) {
  383. c("chooseCard", {
  384. app_id: M.appId,
  385. location_id: e.shopId || "",
  386. sign_type: e.signType || "SHA1",
  387. card_id: e.cardId || "",
  388. card_type: e.cardType || "",
  389. card_sign: e.cardSign,
  390. time_stamp: e.timestamp + "",
  391. nonce_str: e.nonceStr
  392. }, (e._complete = function (e) {
  393. e.cardList = e.choose_card_info, delete e.choose_card_info
  394. }, e))
  395. }, openCard: function (e) {
  396. for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
  397. var r = n[t], a = {card_id: r.cardId, code: r.code};
  398. i.push(a)
  399. }
  400. c(p.openCard, {card_list: i}, e)
  401. }, consumeAndShareCard: function (e) {
  402. c(p.consumeAndShareCard, {consumedCardId: e.cardId, consumedCode: e.code}, e)
  403. }, chooseWXPay: function (e) {
  404. c(p.chooseWXPay, n(e), e)
  405. }, openEnterpriseRedPacket: function (e) {
  406. c(p.openEnterpriseRedPacket, n(e), e)
  407. }, startSearchBeacons: function (e) {
  408. c(p.startSearchBeacons, {ticket: e.ticket}, e)
  409. }, stopSearchBeacons: function (e) {
  410. c(p.stopSearchBeacons, {}, e)
  411. }, onSearchBeacons: function (e) {
  412. i(p.onSearchBeacons, e)
  413. }, openEnterpriseChat: function (e) {
  414. c("openEnterpriseChat", {useridlist: e.userIds, chatname: e.groupName}, e)
  415. }, launchMiniProgram: function (e) {
  416. c("launchMiniProgram", {
  417. targetAppId: e.targetAppId, path: function (e) {
  418. if ("string" == typeof e && 0 < e.length) {
  419. var n = e.split("?")[0], i = e.split("?")[1];
  420. return n += ".html", void 0 !== i ? n + "?" + i : n
  421. }
  422. }(e.path), envVersion: e.envVersion
  423. }, e)
  424. }, miniProgram: {
  425. navigateBack: function (e) {
  426. e = e || {}, u(function () {
  427. c("invokeMiniProgramAPI", {name: "navigateBack", arg: {delta: e.delta || 1}}, e)
  428. })
  429. }, navigateTo: function (e) {
  430. u(function () {
  431. c("invokeMiniProgramAPI", {name: "navigateTo", arg: {url: e.url}}, e)
  432. })
  433. }, redirectTo: function (e) {
  434. u(function () {
  435. c("invokeMiniProgramAPI", {name: "redirectTo", arg: {url: e.url}}, e)
  436. })
  437. }, switchTab: function (e) {
  438. u(function () {
  439. c("invokeMiniProgramAPI", {name: "switchTab", arg: {url: e.url}}, e)
  440. })
  441. }, reLaunch: function (e) {
  442. u(function () {
  443. c("invokeMiniProgramAPI", {name: "reLaunch", arg: {url: e.url}}, e)
  444. })
  445. }, postMessage: function (e) {
  446. u(function () {
  447. c("invokeMiniProgramAPI", {name: "postMessage", arg: e.data || {}}, e)
  448. })
  449. }, getEnv: function (e) {
  450. u(function () {
  451. e({miniprogram: "miniprogram" === o.__wxjs_environment})
  452. })
  453. }
  454. }
  455. }, L = 1, B = {};
  456. return t.addEventListener("error", function (e) {
  457. if (!y) {
  458. var n = e.target, i = n.tagName, t = n.src;
  459. if (("IMG" == i || "VIDEO" == i || "AUDIO" == i || "SOURCE" == i) && -1 != t.indexOf("wxlocalresource://")) {
  460. e.preventDefault(), e.stopPropagation();
  461. var o = n["wx-id"];
  462. if (o || (o = L++, n["wx-id"] = o), B[o]) return;
  463. B[o] = !0, wx.ready(function () {
  464. wx.getLocalImgData({
  465. localId: t, success: function (e) {
  466. n.src = e.localData
  467. }
  468. })
  469. })
  470. }
  471. }
  472. }, !0), t.addEventListener("load", function (e) {
  473. if (!y) {
  474. var n = e.target, i = n.tagName;
  475. if (n.src, "IMG" == i || "VIDEO" == i || "AUDIO" == i || "SOURCE" == i) {
  476. var t = n["wx-id"];
  477. t && (B[t] = !1)
  478. }
  479. }
  480. }, !0), e && (o.wx = o.jWeixin = C), C
  481. }
  482. var O
  483. });
  484. //#endif