开启左侧

uni-app开发企微H5——推送音讯给客户

[复制链接]
在线会员 5YoiEl86cdnY 发表于 2022-12-30 14:42:18 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
媒介:正在企微拉收个消息给客户如何便这样易这???别觉得有了开辟文档您就能够一往无前了!前面的路借需要您披荆棘这~

企微开辟文档:谈天东西栏交心 - 交心文档 - 企业微疑开辟者中间
第一步:引用企微的js-sdk
  1. <script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
复造代码
使用分析 - 交心文档 - 企业微疑开辟者中间
尔把设置js-sdk的代码皆搁正在了qy_wechat.js里,以是需要正在main.js中引用一下,以下代码!
  1. import qy_wechat from '@/co妹妹on/qy_wechat.js'
  2. Vue.prototype.$qy_wechat = qy_wechat;
  3. qy_wechat.initJssdk()
复造代码
因为使用的是uni-app,引用的时候需要减正在template.h5.html中(不那个文献需要新修)uni-app民网,而后按图设置。
uni-app开辟企微H5——拉收消息给客户-1.jpg


怎样鉴别引用胜利?瞅下图
uni-app开辟企微H5——拉收消息给客户-2.jpg


正在资本中能瞅到那个文献便代表您已经完毕了第一步!!!
第两步:设置config 战 agentConfig

假设您是引用的jweixin-module,需要先卸载失落,而后间接用jWeixin去替代wx!否则即是wx.config is not a function~别问尔为何明白!不外那个办法也是瞅了他人的答复试的~
(1)、设置config代码
  1.         initJssdk: function() {
  2.                 let that = this
  3.                 uni.request({
  4.                         url: 恳求的交心url,
  5.                         data: {
  6.                                 agentid: '您自己的agentid',
  7.                                 purl: window.location.href
  8.                         },
  9.                         success: result => {
  10.                                 if (result.data) {
  11.                                         jWeixin.config({
  12.                                                 beta: true, //必需 这样写,不然wx.invoke挪用方法的jsapi会有成就
  13.                                                 debug: false,
  14.                                                 appId: result.data.appId, // 必挖,企业微疑的corpID
  15.                                                 timestamp: result.data.timestamp, // 必挖,天生署名的时间戳
  16.                                                 nonceStr: result.data.nonceStr, // 必挖,天生署名的随机串
  17.                                                 signature: result.data.signature, // 必挖,署名,睹附录-JS-SDK使用权力署名算法
  18.                                                 jsApiList: [
  19.                                                         'checkJsApi',
  20.                                                         'updateAppMessageShareData', //朋友
  21.                                                         'updateTimelineShareData', //朋友圈
  22.                                                         'chooseImage',
  23.                                                         'uploadImage',
  24.                                                         'getLocalImgData',
  25.                                                         'getLocation',
  26.                                                         'openLocation',
  27.                                                         'hideAllNonBaseMenuItem', //躲藏统统非根底按钮交心
  28.                                                         'showAllNonBaseMenuItem',
  29.                                                         'scanQRCode',
  30.                                                         'previewImage'
  31.                                                 ]
  32.                                         });
  33.                                         // config疑息考证后会施行ready办法,统统交心挪用皆必需正在config交心得到成果以后,
  34.                                         // config是一个客户真个同步操纵,以是假设需要正在页里减载时便挪用相干交心,则须把相干交心搁正在ready函数中挪用去保证准确施行。
  35.                                         //关于 用户触收时才华用的交心,则能够间接挪用,没有需要搁正在ready函数中。
  36.                                         jWeixin.ready(function() {
  37.                                                 console.log("ready,设置完毕")
  38.                                                 that.initWxWorkJssdk()
  39.                                         });
  40.                                 }
  41.                         }
  42.                 });
  43.         },
复造代码
(2)、设置agentConfig代码
  1.         //初初化sdk设置  
  2.         initWxWorkJssdk: function() {
  3.                 let that = this
  4.                 uni.request({
  5.                         url: 交心url,
  6.                         data: {
  7.                                 agentid: 您自己的agentid,
  8.                                 purl: window.location.href
  9.                         },
  10.                         success: res => {
  11.                                 if (res.errMsg != "request:ok") {
  12.                                         alert(res.errMsg);
  13.                                 } else {
  14.                                         let d = res.data.d;
  15.                                        
  16.                                                 jWeixin.agentConfig({
  17.                                                         corpid: d.appId, // 必挖,企业微疑的corpid,必需取目前登录的企业不合
  18.                                                         agentid: 1000060, // 必挖,企业微疑的使用id
  19.                                                         timestamp: d.timestamp, // 必挖,天生署名的时间戳
  20.                                                         nonceStr: d.nonceStr, // 必挖,天生署名的随机串
  21.                                                         signature: d.signature, // 必挖,署名,睹附录1
  22.                                                         jsApiList: [
  23.                                                                 'checkJsApi',
  24.                                                                 'getContext',
  25.                                                                 'getCurExternalContact',
  26.                                                                 'getCurExternalChat',
  27.                                                                 'sendChatMessage'
  28.                                                         ], //必挖
  29.                                                         success: function() {
  30.                                                                 that.Getcontext()
  31.                                                         },
  32.                                                         fail: function(res) {
  33.                                                                 alert(res.errMsg);
  34.                                                                 if (res.errMsg.indexOf("function not exist") > -1) {
  35.                                                                         alert("版原太低请升级");
  36.                                                                 }
  37.                                                         }
  38.                                                 });
  39.                                        
  40.                                 }
  41.                         }
  42.                 });
  43.         },
复造代码
那里值患上留神的是config能够正在微疑东西上浮试,可是agentConfig需要公布以后再脚机上瞅!尔试过实机调试也不可!便很烦!!!爆炸~没有明白您们有甚么佳办法~尔瞅有的是用了甚么代办署理硬件弄的。出试过
第三步:获得加入H5页里的进口情况 - 交心文档 - 企业微疑开辟者中间
  1.         //鉴别进口
  2.         Getcontext() {
  3.                 var that = this;
  4.                         jWeixin.invoke('getContext', {}, function(res) {
  5.                                 if (res.err_msg == "getContext:ok") {
  6.                                         // that.entry = res.entry;
  7.                                         uni.setStorageSync('entry',res.entry)
  8.                                        
  9.                                         //前去加入H5页里的进口范例,今朝有normal、contact_profile、single_chat_tools、group_chat_tools、chat_attachment
  10.                                         that.getExternalid(res.entry)
  11.                                         // shareTicket = res.shareTicket; //可用于挪用getShareInfo交心
  12.                                 } else {
  13.                                         //毛病处置
  14.                                 }
  15.                         });
  16.         },
复造代码
第四步:获得目前内部联系人userid - 交心文档 - 企业微疑开辟者中间
  1. getExternalid(entry) {
  2.                 var that = this
  3.                 if (entry == 'contact_profile' || entry == 'single_chat_tools') {
  4.                        
  5.                         jWeixin.invoke('getCurExternalContact', {}, function(res) {
  6.                                
  7.                                 if (res.err_msg == "getCurExternalContact:ok") {
  8.                                         uni.setStorageSync('userId',res.userId)
  9.                                        
  10.                                         // that.userId = res.userId; //前去目前内部联系人userId
  11.                                
  12.                                 } else {
  13.                                         //毛病处置
  14.                                 }
  15.                         });
  16.                 }
  17.                 if (entry == 'group_chat_tools') {
  18.                         jWeixin.invoke('getCurExternalChat', {}, function(res) {
  19.                                 if (res.err_msg == "getCurExternalChat:ok") {
  20.                                         uni.setStorageSync('chatId',res.chatId)
  21.                                         // that.chatId = res.chatId; //前去目前客户群的群聊ID
  22.                                 } else {
  23.                                         //毛病处置
  24.                                 }
  25.                         });
  26.                 }
  27.         }
复造代码
第五步:分享消息到目前会话 - 交心文档 - 企业微疑开辟者中间
  1. // 拉收消息
  2. pushThis(){
  3.                                 var that = this
  4.                                 var ua = window.navigator.userAgent.toLowerCase();
  5.                                 console.log(ua)
  6.                                 console.log(ua.match(/wxwork/i) == 'wxwork')
  7.                                 if (ua.match(/wxwork/i) == 'wxwork') {
  8.                                        
  9.                                         jWeixin.invoke('sendChatMessage', {
  10.                                                 msgtype:"text", //消息范例,必挖
  11.                                                 enterChat: true, //为true时暗示收收完毕以后特别加入会话,仅挪动端3.1.10及以上版原撑持该字段
  12.                                                 text: {
  13.                                                         content:that.content, //文原实质
  14.                                                 }
  15.                                         }, function(res) {
  16.                                                 if (res.err_msg == 'sendChatMessage:ok') {
  17.                                                         //收收胜利
  18.                                                         uni.showModal({
  19.                                                                 title:'提醒',
  20.                                                                 content:"收收胜利"
  21.                                                         })
  22.                                                 }
  23.                                         })
  24.                                 } else {
  25.                                         uni.showToast({
  26.                                                 title: "请正在企业微疑端操纵",
  27.                                                 icon: "none"
  28.                                         })
  29.                                         return
  30.                                 }
  31. }
复造代码
拉收消息的以前必需正在企业微疑背景设置上您的使用,才气挪用,否则会呈现报错——getCurExternalContact:fail_nopermission!如图:
uni-app开辟企微H5——拉收消息给客户-3.jpg


假设公布以后,收现在企微挨没有启?保证您的使用正在背景设置了可托域名!
uni-app开辟企微H5——拉收消息给客户-4.jpg


成果发明苹因脚机不克不及使用,请瞅下篇文章。
uni-app开辟企微H5——拉消息给客户(装置包版)_Strawberry96的专客-CSDN专客
您需要登录后才可以回帖 登录 | 立即注册 qq_login

本版积分规则

发布主题
阅读排行更多+
用专业创造成效
400-778-7781
周一至周五 9:00-18:00
意见反馈:server@mailiao.group
紧急联系:181-67184787
ftqrcode

扫一扫关注我们

Powered by 职贝云数A新零售门户 X3.5© 2004-2025 职贝云数 Inc.( 蜀ICP备2024104722号 )