wecom-sidebar-react-tpl

企业微信侧边栏前端开发模板

功能

  • 一份 企业侧边栏客户端 模板
  • wx.agentConfig, wx.config, wx.invoke 函数封装
  • 侧边栏重定向获取用户身份 checkRedirect,以及 JsSDK 的初始化步骤 initSdk
  • Mock 侧边栏 JsSdk,使其可以在浏览器上直接调试!
  • TS 支持
  • React Router 的示例

基础配置

启动项目需要用到 agentIdcorpId,需要创建 src/_config.ts(目前已隐藏),示例

// src/_config.ts

const config = {
  // 在 https://work.weixin.qq.com/wework_admin/frame#profile 这里可以找到
  corpId: '你的企业ID',
  // 在 https://work.weixin.qq.com/wework_admin/frame#apps 里的自建应用里可以找到
  agentId: '自建应用的AgentId'
}

export default config

代理配置

代理配置这里需要用到 Whistle 这个代理工具,请在 这篇教程 里先安装 Whistle, 然后再在 这篇教程 中正确安装 HTTPS 证书(用于代理 HTTPS 流量),两个步骤请一定要正确执行!

然后在 whistle 中添加以下的代理配置,将后端路由传向本地

# 代理前端(侧边栏页面代理到本地的 3000 端口),这里要改为你自己配置H5的地址就好
//service-xxx-yyy.gz.apigw.tencentcs.com http://127.0.0.1:3000

# 代理后端(后端模板的 baseURL 该模板写死为 backend.com,这里代理到本地的 5000 端口)
//backend.com http://127.0.0.1:5000

Mock

此功能可以使得你在浏览器上直接调试侧边栏应用!

在浏览器模式下,会 Mock jsSdk,默认回调为空函数,并打上对应日志。你也可以在 src/mock.ts 下可以添加对 wx.fnwx.invoke 这些函数的 Mock 值以及 Mock 函数。

如果你不想将 Mock 写死在项目上,你也可以利用 Whistle 预先注入全局 JS,以此在全局注入对应的 Mock 值和回调函数。

Whistle 的 Rules 可以写成:

# 代理前端(侧边栏页面代理到本地的 3000 端口),这里要改为你自己配置H5的地址就好
//service-xxx-yyy.gz.apigw.tencentcs.com http://127.0.0.1:3000

# 代理后端(后端模板的 baseURL 该模板写死为 backend.com,这里代理到本地的 5000 端口)
//backend.com http://127.0.0.1:5000

# 全局注入 mock.js
//service-xxx-yyy.gz.apigw.tencentcs.com  jsPrepend://{mock.js}

然后在 Whistle 页面的 Values (输入 http://127.0.0.1:8899/#values 可见) 中会自动生成一个 mock.js,再在里面添加如下代码:

// Mock 当前用户 Id
window.mockUserId = 'xxx'

// 可在这里自由 mock wx.invoke 的内容
window.invokeResMock = {
  'getCurExternalContact': {
    userId: 'xxxxx'
  },
}

// 可在这里自由 wx.fn 的内容
window.wxResMock = {
  'agentConfig': () => {
    console.log('mock agent config')
  },
}

这里对应的 Mock 关系 Mapper 有 wxResMockinvokeResMock 分别对 wx.fnwx.invoke('api', callback') 两种调用方式进行 Mock。

启动

启动项目

npm run start

更多