企业微信内嵌H5项目接入聊天功能

产品需求是,在列表中把符合条件的列表接入聊天功能,以下是详细步骤:

1.引入企业微信

<script src="https://res.wx.qq.com/wwopen/js/jsapi/jweixin-1.0.0.js"></script>

 2.获取wx签名(必须要)

/**
 * 获取wx签名
 **/
export function getWxJsApi(data) {
    return request({
        url: '/js-sdk',
        method: 'post',
        data
    })
}

3.封装组件(两个)

wxConfig.js

import {getWxJsApi} from "@/api/arrives";

export const wxConfig = async (url, jsApiList, jsApiListChat) => {
  try {
    let res = await getWxJsApi({url});
    if (res && res.status === 200) {
      const { corpId, nonceStr, signature, timeStamp } = res.data
      wx &&
        wx.config({
          beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
          debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
          appId: corpId, // 必填,企业微信的corpID,必须是本企业的corpID,不允许跨企业使用
          timestamp: timeStamp, // 必填,生成签名的时间戳
          nonceStr, // 必填,生成签名的随机串
          signature,// 必填,签名,见 附录-JS-SDK使用权限签名算法
          jsApiList,
        });
  
      wx &&
        wx.ready(() => {
          if (jsApiListChat) {
            getWxJsApi ({url}).then(result => {
              if (res.status === 200) {
                wx.agentConfig({
                  beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
                  debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                  appId: result.data.corpId, // 必填,企业微信的corpID,必须是本企业的corpID,不允许跨企业使用
                  timestamp: result.data.timeStamp, // 必填,生成签名的时间戳
                  nonceStr: result.data.nonceStr, // 必填,生成签名的随机串
                  signature: result.data.signature,// 必填,签名,见 附录-JS-SDK使用权限签名算法
                  jsApiList:jsApiListChat
                });
              }
            })
          }
          wx.error(function() {
            console.log('error');
          });
        });
    }
  } catch(error) {

  } 
}

mixin.js

import {wxConfig} from '@/utils/wxConfig'
const chatMixin = {
  mounted() {
    let url = location.href
    wxConfig(url, ['openEnterpriseChat','checkJsApi'], ['selectExternalContact', 'getCurExternalContact'])
  },
  methods: {
    wxEnterpriseChat (obj) {
      wx &&
        wx.checkJsApi({
          jsApiList: ['openEnterpriseChat'],
          success: function (res) {
            wx.openEnterpriseChat({
              ...obj,
              groupName: '',
              chatId: "",
              success: function(res) {
              var chatId = res.chatId;
                  // 回调
              },
              fail: function(res) {
                  if(res.errMsg.indexOf('function not exist') > -1){
                      alert('版本过低请升级')
                  }
              }
            })
          },
          fail: function(error) {
            console.log(error)
          }
        })
    }
  }
}

export {chatMixin}

4.页面上使用

<1>引入

import {chatMixin} from "@/utils/mixin";
export default {
   mixins: [chatMixin],
}

html

<div class="right-customer-detail flex" v-if="enterpriseWeChatUserId == item.userAccountId && item.externalUserId">
        <img
          src="https://static-resource.dossen.com/H5/marketing/img/wechat.png"
          class="wechat-img"
          @click.stop="() => testChat(item.externalUserId)"
        />
 </div>

methods:

 testChat(externalUserIds) {
      let obj = {externalUserIds}
      this.wxEnterpriseChat(obj)
    },

已结束

备注: 

这里的this.wxEnterpriseChat就是上面mixin.js封装的方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/748455.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DC/AC电源模块:效率与可靠性兼备的能源转换解决方案

BOSHIDA DC/AC电源模块&#xff1a;效率与可靠性兼备的能源转换解决方案 随着科技的迅速发展和人工智能技术的逐渐成熟&#xff0c;各种电子设备的需求也日益增加。然而&#xff0c;这些设备往往需要不同的电压和电流来正常工作&#xff0c;而供电方式却可能不尽相同。这时&am…

前端框架中的前端打包(Bundling)和前端构建工具(Build Tools)的作用

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介前端框架中的前端打包&#xff08;Bundling&#xff09;和前端构建工具&#xff08;Build Tools&#xff09;的作用1. 引言2. 前端打包&#xff08;Bundling&#xff09;2.1 概述2.2 常见的打包工具2.2.1 Webpack2.2.2 Parcel 2.3 …

ERP收费模式是怎样的?SAP ERP是如何收费的?

一、购置SAP ERP系统的费用组成 1、软件费用 传统的ERP系统大多为许可式&#xff0c;即企业在购买ERP服务时付清所有费用&#xff0c;将ERP系统部署于自己的服务器中。根据所购买ERP系统品牌的不同&#xff0c;价格上也有一定的差异。采购ERP系统许可后&#xff0c;后续维护、…

springboot医院门诊挂号系统-计算机毕业设计源码033123

目 录 摘要 1 绪论 1.1研究背景及意义 1.2研究现状 1.3系统开发技术的特色 1.4论文结构与章节安排 2 医院门诊挂号系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据修改流程 2.3.3数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.…

模拟题解析:

《互联网域名管理办法》第41条规定&#xff0c;域名根服务器运行机构、域名注册管理机构和域名注册服务机构应当遵守国家相关法律、法规和标准&#xff0c;落实网络与信息安全保障措施&#xff0c;配置必要的网络通信应急设备&#xff0c;建立健全网络与信息安全监测技术手段和…

3D渲染时如何提高GPU的使用率?这7点告诉你

GPU 正逐渐取代 CPU 在 3D 渲染中的地位。我们看到许多 GPU 渲染器如 Redshift、Octane、FStorm 等不断推出。以前只支持 CPU 渲染的渲染器&#xff0c;如 Arnold、V-Ray、Renderman、Keyshot 等&#xff0c;现在也开始支持 GPU 渲染。实时渲染的发展使 GPU 更受欢迎&#xff0…

V-Series Avalon-MM DMA Interface for PCIE IP核

目录 1. IP概述 2. Avalon-MM DMA Ports 3. 参数设置 3.1 系统设置 3.2 基址寄存器 (BAR) 设置 3.3 设备识别寄存器 3.4 PCI Express和PCI功能参数 3.4.1 Device Capabilities 3.4.2 Error Reporting 3.4.3 Link Capabilities 3.4.4 MSI and MSI-X Capabilities …

【MySQL进阶之路 | 高级篇】索引及索引的数据结构

1. 为什么要使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构&#xff0c;就好比一本教科书的目录&#xff0c;通过目录可以找到对应文章的页面&#xff0c;而不用一页一页从头翻到尾.MySQL也是一样的道理.在进行数据查找时&#xff0c;首先查看查询条件是否命中某…

基于weixin小程序校园快递系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;用户管理&#xff0c;订单管理&#xff0c;快递管理&#xff0c;快递记录管理&#xff0c;公告管理&#xff0c;基础数据管理 小程序功能包括&#xff1a;系统首页&#xff0c;…

Java毕设代码助力,让技术实现更流畅

Java毕设代码助力&#xff0c;让技术实现更流畅 在Java毕业设计的道路上&#xff0c;代码的编写往往占据了大部分的时间和精力。为了帮助同学们更专注于项目的核心逻辑和创意实现&#xff0c;Java毕设服务工作室专注于提供高质量的Java代码支持。 一、专业编码&#xff0c;助…

python-引用配置文件和日志

文章目录 前言python-引用配置文件和日志1. 给一个配置文件2. 获取配置文件信息方法3. 获取配置信息&#xff0c;引入日志分页功能demo4. 测试 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。 …

【乐吾乐2D可视化组态编辑器】文件

1 文件 文件&#xff1a;文件的新建、打开、导入、保存、另存为、下载JOSN文件、下载ZIP打包文件、导出为HTML、导出为Vue2组件、导出为Vue3组件、导出为React组件&#xff08;老版将不再维护&#xff09;、下载为PNG、下载为SVG 乐吾乐2D可视化组态编辑器demo&#xff1a;ht…

HTTP协议和Nginx

一、HTTP协议和Nginx 1.套接字Socket 套接字Socket是进程间通信IPC的一种实现&#xff0c;允许位于不同主机&#xff08;或同一主机&#xff09;上不同进程之间进行通信和数据交换&#xff0c;SocketAPI出现于1983年BSD4.2实现在建立通信连接的每一端&#xff0c;进程间的传输…

mac配置修改host文件

1command 空格 输入 terminal 选中回车进入终端控制台. command 空格 2 sudo vi /etc/hosts 输入密码,进入vi编辑器修改文件 sudo vi /etc/hosts3修改内容,:wq保存退出,重启项目即可 :wq

全景图片/老照片/动漫图片一键无损放大与修复

在日常生活中&#xff0c;我们经常使用系统自带的图片处理软件来对图片进行缩放操作&#xff0c;从而实现放大或缩小图片。然而&#xff0c;这种方法会带来一个问题&#xff1a;如果原始图片较小&#xff0c;放大后会导致精度损失&#xff0c;使图片变得模糊。 近年来&#xf…

Radxa 学习摘录

文章目录 一、参考资料二、硬件知识 一、参考资料 技术论坛&#xff08;推荐&#xff09; 官方资料下载 wiki资料 u-boot 文档 u-boot 源码 内核文档 内核源码 原理图 二、硬件知识 Radxa 3B 主板概览 MIPI接口 MIPI CSI&#xff08;Camera Serial Interface&#xff09;…

MemManage_Handler 问题的解决思路

1、问题 在做一个安全类项目时发现&#xff0c;软件在运行一段时间后会进入"MemManage_Handler",遂开始了一系列查找。 2、解决 &#xff08;1&#xff09;查看堆栈数据 查堆栈的数据&#xff0c;发现堆栈也被破坏了&#xff0c;看不出来是执行哪个任务执行导致的…

mediasoup 源码分析 (八)分析PlainTransport

mediasoup 源码分析 &#xff08;六&#xff09;分析PlainTransport 一、接收裸RTP流二、mediasoup 中udp建立过程 tips 一、接收裸RTP流 PlainTransport 可以接收裸RTP流&#xff0c;也可以接收AES加密的RTP流。源码中提供了一个通过ffmpeg发送裸RTP流到mediasoup的脚本&…

centos上快速搭建zfile文件网站

什么是zfile&#xff1f; zfile文件网站是最方便快捷的在线目录展示程序&#xff0c;支持将本地文件、FTP、SFTP、S3、OneDrive 等存储在网站上展示并浏览&#xff01; 本教程参考&#xff1a; https://docs.zfile.vip/install/os-linux复现 今天的搭建环境是centos7.9 第一…

CPPTest设计分析

目录 1 概述2 设计3 扩展Output3.1 扩展实例 1 概述 CppTest是一个可移植、功能强大但简单的单元测试框架&#xff0c;用于处理C中的自动化测试。重点在于可用性和可扩展性。支持多种输出格式&#xff0c;并且可以轻松添加新的输出格式。 CppTest下载地址Sourceforge Github地…