「这是我参与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咨询中,选择图片导致音视频掉线问题
- 小程序侧 授权方式不同
- IOS咨询中,选择图片导致音视频掉线问题
- JSSDK 不同环境版本不同
- 不同版本 JSSDK 授权参数有差异
- 企业微信: 开放标签无法使用
- 企业微信: 超级公众号 agentConfig 配置报错(需要对应 agent_code)
- 企业微信: 超级公众号 小程序跳转报错(未添加小程序)
解决方案调研
使用统一的 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
\
文档调研
小程序授权流程差异
- 企业微信
- 微信