wxAuthorized.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. import {
  2. wechatConfig,
  3. share,
  4. getWxconfig
  5. } from '@/api/wx';
  6. import {
  7. getCompany
  8. } from '@/api/index.js'
  9. import store from '../store';
  10. // 保存wx对象
  11. // #ifdef H5
  12. let weixinObj = require('jweixin-module');
  13. // #endif
  14. // #ifdef MP-WEIXIN
  15. let weixinObj
  16. // #endif
  17. // // #ifdef MP-WEIXIN
  18. // let weixinObj = wx
  19. // // #endif
  20. // 保存分享数据
  21. let shareData = '';
  22. // 保存注册返回appId数据
  23. let appId = '';
  24. //微信登录
  25. /**
  26. * @param {string} 当前页面地址信息
  27. */
  28. export function loginWinxin() {
  29. let pages, page, path;
  30. try {
  31. pages = getCurrentPages();
  32. // 获取跳转前页面
  33. page = pages[pages.length - 1];
  34. // 获取跳转前路由地址
  35. path = page.route;
  36. } catch (e) {
  37. console.log(e);
  38. }
  39. // 判断是否在登录页
  40. if (path != 'pages/redirect/redirect') {
  41. setTimeout((e) => {
  42. weixinObj.ready(() => {
  43. console.log('weixinObj.ready');
  44. // 调用
  45. try {
  46. console.log(shareData);
  47. console.log(path);
  48. weixinSq(shareData, path);
  49. } catch (e) {
  50. console.log(e);
  51. //TODO handle the exception
  52. }
  53. });
  54. weixinObj.error((e) => {
  55. console.log(e);
  56. })
  57. }, 10)
  58. }
  59. };
  60. // 微信授权登录
  61. function weixinSq(data, path) {
  62. // 微信授权后跳转页面
  63. try {
  64. let ul = encodeURIComponent(store.state.baseURL + store.state.urlFile + '/#/pages/redirect/redirect');
  65. console.log(ul, "ul")
  66. // 打开微信授权页面
  67. let url =
  68. 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' +
  69. appId +
  70. '&redirect_uri=' +
  71. ul +
  72. '&response_type=code&scope=snsapi_userinfo&state=' +
  73. new Date().getTime() +
  74. '#wechat_redirect';
  75. console.log(url, "url")
  76. window.location.href = url;
  77. } catch (e) {
  78. console.log(e);
  79. }
  80. };
  81. // 微信注册
  82. export function weixindata(config) {
  83. // console.log(config);
  84. //注册微信信息
  85. let weixinObj = require('jweixin-module');
  86. // 保存微信对象到全局仓库
  87. store.commit('setWeiChatObj', weixinObj)
  88. console.log(window.location.href);
  89. console.log('当前注册url地址', window.location.href);
  90. getWxconfig({
  91. url: store.state.baseURL + store.state.urlFile + '/',
  92. }).then(({
  93. data
  94. }) => {
  95. appId = data.appId;
  96. // 微信信息配置
  97. weixinObj.config({
  98. debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  99. appId: data.appId, // 必填,企业号的唯一标识,此处填写企业号corpid
  100. timestamp: data.timestamp, // 必填,生成签名的时间戳
  101. nonceStr: data.nonceStr, // 必填,生成签名的随机串
  102. signature: data.signature, // 必填,签名,见附录1
  103. jsApiList: data.jsApiList // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
  104. });
  105. weixinObj.ready((e) => {
  106. console.log('分享数据', shareData);
  107. if (shareData == '') {
  108. getCompany().then(({
  109. data
  110. }) => {
  111. // 保存appId
  112. shareData = {
  113. title: data.company_name,
  114. imgUrl: data.wechat_share_image,
  115. desc: data.share_info,
  116. }
  117. shareLoad(config)
  118. })
  119. } else {
  120. shareLoad(config)
  121. }
  122. })
  123. })
  124. // wechatConfig({
  125. // // url: 'pages/applic/location',
  126. // url: store.state.baseURL+ store.state.urlFile+'/',
  127. // })
  128. // .then(({
  129. // data
  130. // }) => {
  131. // // uni.showModal({
  132. // // // url: 'http://yyred.igxys.com/index/',
  133. // // title:'地址',
  134. // // content: window.location.href
  135. // // })
  136. // // 保存appId
  137. // store.commit('setWeiChatInfo', data)
  138. // appId = data.appId;
  139. // // 微信信息配置
  140. // weixinObj.config({
  141. // debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  142. // appId: data.appId, // 必填,企业号的唯一标识,此处填写企业号corpid
  143. // timestamp: data.timestamp, // 必填,生成签名的时间戳
  144. // nonceStr: data.nonceStr, // 必填,生成签名的随机串
  145. // signature: data.signature, // 必填,签名,见附录1
  146. // jsApiList: data.jsApiList // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
  147. // });
  148. // weixinObj.ready((e) => {
  149. // console.log('分享数据',shareData);
  150. // if (shareData == '') {
  151. // share({}).then(({
  152. // data
  153. // }) => {
  154. // shareData = data.data
  155. // shareLoad(config)
  156. // });
  157. // } else {
  158. // shareLoad(config)
  159. // }
  160. // })
  161. // })
  162. // .catch(e => {
  163. // console.log(e);
  164. // });
  165. }
  166. // 加载分享数据
  167. function shareLoad(config) {
  168. let mess;
  169. if (config) {
  170. mess = {
  171. link: config.link, // 分享链接
  172. imgUrl: config.imgUrl,
  173. desc: config.desc,
  174. title: config.title,
  175. success: config.success,
  176. fail: config.fail || function(e) {
  177. console.log(e);
  178. }
  179. }
  180. } else {
  181. // console.log(window.location.href, 55)
  182. // let url = window.location.href + '?spread=' + store.state.userInfo.uid;
  183. let url = window.location.href;
  184. url = url.replace(/[\?,&]{0,1}from=singlemessage/g, '');
  185. mess = {
  186. title: shareData.title,
  187. link: url, // 分享链接
  188. imgUrl: shareData.img, // 分享图标
  189. desc: shareData.synopsis,
  190. success: function() {},
  191. fail: function(e) {
  192. console.log(e);
  193. }
  194. }
  195. }
  196. // 获取仓库数据
  197. // 分享好友
  198. // weixinObj.updateAppMessageShareData(mess);
  199. weixinObj.onMenuShareAppMessage(mess); // 即将废弃
  200. // 分享朋友圈
  201. // weixinObj.updateTimelineShareData(mess)
  202. weixinObj.onMenuShareTimeline(mess); // 即将废弃
  203. }
  204. // 隐藏功能按钮
  205. export function weixinhideMenu(config) {
  206. console.log(config)
  207. weixinObj.ready((e) => {
  208. weixinObj.hideMenuItems({
  209. menuList: config, // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
  210. });
  211. })
  212. }
  213. // export function getLoca(config) {
  214. // console.log(config)
  215. // weixinObj.ready((e) => {
  216. // weixinObj.getLocation({
  217. // type: 'wgs84',
  218. // success: function (res) {
  219. // config.longitude = res.longitude;
  220. // config.latitude = res.latitude;
  221. // uni.showModal({
  222. // title: '提示',
  223. // content: res.longitude
  224. // })
  225. // console.log('当前位置的经度:' + res.longitude);
  226. // console.log('当前位置的纬度:' + res.latitude);
  227. // }
  228. // });
  229. // })
  230. // }
  231. export default {
  232. weixinObj,
  233. shareData,
  234. appId
  235. }