企业微信与微信兼容

「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战

问题收敛

调研到的问题列表

  • 公众号侧
    • jSSDK 版本不同
    • wx.config 在两端参数有差异
    • wx-open-launch-weapp 在企业微信无法使用
    • agentConfig 微信端不支持
    • chooseImage 企业微信端参数不同
    • 分享、摇一摇、小店、卡券、支付、快速输入 不支持
  • 小程序侧
    • 部分标签不支持(camera、official-account)
    • 部分标签部分支持(audio、video、map、canvas、web-view)
    • 部分接口不支持(查看 API 差异表格)
    • 部分接口部分支持(查看 API 差异表格)

那几个问题需要优先被解决?

  • 公众号

    • JSSDK 不同环境版本不同
    • 不同版本 JSSDK 授权参数有差异
    • 企业微信: 开放标签无法使用
    • 企业微信: 公众号 agentConfig 配置报错(需要对应 agent_code)
    • 企业微信: 公众号 小程序跳转报错(未添加小程序)
  • 小程序

    • 授权方式不同 
    • IOS咨询中,选择图片导致音视频掉线问题
  1. 小程序侧 授权方式不同
  2. IOS咨询中,选择图片导致音视频掉线问题
  3. JSSDK 不同环境版本不同
  4. 不同版本 JSSDK 授权参数有差异
  5. 企业微信: 开放标签无法使用
  6. 企业微信: 超级公众号 agentConfig 配置报错(需要对应 agent_code)
  7. 企业微信: 超级公众号 小程序跳转报错(未添加小程序)

解决方案调研

使用统一的 jssdk 1.2.0 还是 1.2.0 + 1.6.0 混合使用

目前情况来看,这种方式并不理想。

虽然官方客服给出的回答是需要使用 jssdk 1.2.0 的企业微信版本,但是 1.2.0 的企业微信版本不支持微信端的小程序跳转, 企业微信文档中明确指出:

此接口仅在企业微信3.0.36及以后版本支持,微信端不支持(微信开发者工具也不支持)。

因此我们还是采用判断的方式引入不同的 jssdk,代码放在 head 中,通过 useragent 判断环境, 根据环境加载不同的 jssdk

(第二种方式,考虑将 jssdk 下载到本地,然后重写其中的赋值,将赋值的操作由 wx 更新为 qywx,但官方并未给出此种方式,且源码是经过压缩的,并不能区分出来)

  • 需要在不同端配置不同的 getjssdkconfig 方法
  • 需要在企业微信端配置 agentConfig,以便于 wxninvoke 跳转小程序
  • 需要同时支持企业微信和微信环境的小程序跳转

launchMiniprogram使用方法

  • 添加企业微信应用,并启动 jssdk 功能

  • 添加小程序应用,以便于其他应用关联该应用

  • 配置 agentConfig ,否则无权限调取小程序应用

    • 接口调用需要传参:type:agent, agent_code:后台同学要

      • agent_code: 每个应用我们建立了自己的 agentid 对应字符串,以该字符串后台获取 agentid
      • type:不传该参数则调取的 wx.config 需要的参数,默认值:corp
      • 返回值中的 appid 就是 agentConig 中需要的 corpid 
      • url: 当前路径的url, 参考 wx.config
    • config 的 appid 需要调整为 corpid 

  • config 、 agentConfig 添加 launchMiniprogram jssdk,否则报权限错误

  • 添加 invoke jssdk,用来调取 launchMiniprogram 应用 

注:

  • agentConfig 和 config 并不是二选一的关系可以同步使用
  • agentConfig 需要导入 jssdk1.0 版本
  • 在旧版本中,需要 config 先导入,再导入 agentConfig
  • 在新版本中,如果不需要其他内容,可以仅导入 agentConfig

\

文档调研

小程序授权流程差异

  • 企业微信
  • 微信

猜你喜欢

转载自juejin.im/post/7063039826420826143