work.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. import {getWorkConfig,getWorkAgentConfig} from "@/api/work.js"
  2. // import {wx} from "@/utils/agent.js"
  3. export function initWxConfig() {
  4. return getTicket;
  5. }
  6. export function initAgentConfig() {
  7. return agentConfig;
  8. };
  9. const getTicket = new Promise((resolve, reject) => {
  10. getWorkConfig(window.location.href.split('#')[0]).then(res=>{
  11. if (/(iPhone|iPad|iPod|iOS|macintosh|mac os x)/i.test(navigator.userAgent)) {
  12. jWeixin.config({
  13. beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
  14. debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  15. appId: res.data.appId, // 必填,企业微信的corpID
  16. timestamp:res.data.timestamp , // 必填,生成签名的时间戳
  17. nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
  18. signature: res.data.signature,// 必填,签名,见 附录-JS-SDK使用权限签名算法
  19. // jsApiList: res.data.jsApiList // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
  20. jsApiList: ["getCurExternalContact", "getCurExternalChat", "getContext", "chooseImage","sendChatMessage","shareAppMessage"]
  21. });
  22. jWeixin.ready(function() {
  23. // resolve(wx);
  24. setTimeout(()=>{
  25. getWorkAgentConfig(window.location.href.split('#')[0]).then(response=>{
  26. let jWeixi = wx;
  27. jWeixi.agentConfig({
  28. corpid: response.data.corpid, // 必填,企业微信的corpid,必须与当前登录的企业一致
  29. agentid: response.data.agentid, // 必填,企业微信的应用id (e.g. 1000247)
  30. timestamp: response.data.timestamp, // 必填,生成签名的时间戳
  31. nonceStr: response.data.nonceStr, // 必填,生成签名的随机串
  32. signature: response.data.signature,// 必填,签名,见附录-JS-SDK使用权限签名算法
  33. // jsApiList: response.data.jsApiList, //必填,传入需要使用的接口名称
  34. jsApiList: ["getCurExternalContact", "getCurExternalChat", "getContext", "chooseImage","sendChatMessage","shareAppMessage"],
  35. success: function(data) {
  36. resolve(data);
  37. },
  38. fail: function(err) {
  39. if(err.errMsg.indexOf('function not exist') > -1){
  40. reject('版本过低请升级');
  41. }
  42. }
  43. });
  44. })
  45. },1000)
  46. })
  47. }else{
  48. // window.wx = window.jWeixin;
  49. jWeixin.config({
  50. beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
  51. debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  52. appId: res.data.appId, // 必填,企业微信的corpID
  53. timestamp:res.data.timestamp , // 必填,生成签名的时间戳
  54. nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
  55. signature: res.data.signature,// 必填,签名,见 附录-JS-SDK使用权限签名算法
  56. jsApiList: ["getCurExternalContact", "getCurExternalChat", "getContext", "chooseImage","sendChatMessage","shareAppMessage"] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
  57. });
  58. jWeixin.ready(function() {
  59. // resolve(wx);
  60. getWorkAgentConfig(location.href).then(response=>{
  61. jWeixin.agentConfig({
  62. corpid: response.data.corpid, // 必填,企业微信的corpid,必须与当前登录的企业一致
  63. agentid: response.data.agentid, // 必填,企业微信的应用id (e.g. 1000247)
  64. timestamp: response.data.timestamp, // 必填,生成签名的时间戳
  65. nonceStr: response.data.nonceStr, // 必填,生成签名的随机串
  66. signature: response.data.signature,// 必填,签名,见附录-JS-SDK使用权限签名算法
  67. // jsApiList: response.data.jsApiList, //必填,传入需要使用的接口名称
  68. jsApiList: ["getCurExternalContact", "getCurExternalChat", "getContext", "chooseImage","sendChatMessage","shareAppMessage"],
  69. success: function(data) {
  70. resolve(data);
  71. },
  72. fail: function(err) {
  73. if(err.errMsg.indexOf('function not exist') > -1){
  74. reject('版本过低请升级');
  75. }
  76. }
  77. });
  78. })
  79. })
  80. }
  81. }).catch(err=>{
  82. reject(err);
  83. })
  84. })
  85. const agentConfig = new Promise((resolve, reject)=>{
  86. getWorkAgentConfig(location.href).then(res=>{
  87. wx.agentConfig({
  88. corpid: res.data.corpid, // 必填,企业微信的corpid,必须与当前登录的企业一致
  89. agentid: res.data.agentid, // 必填,企业微信的应用id (e.g. 1000247)
  90. timestamp: res.data.timestamp, // 必填,生成签名的时间戳
  91. nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
  92. signature: res.data.signature,// 必填,签名,见附录-JS-SDK使用权限签名算法
  93. jsApiList: ["getCurExternalContact", "getCurExternalChat", "getContext", "chooseImage","sendChatMessage","shareAppMessage"]
  94. , //必填,传入需要使用的接口名称
  95. success: function(res) {
  96. resolve(res);
  97. },
  98. fail: function(res) {
  99. if(res.errMsg.indexOf('function not exist') > -1){
  100. reject('版本过低请升级');
  101. }
  102. }
  103. });
  104. })
  105. })