Open mingjiezhou opened 2 years ago
企微开发是属于混合开发的一个典型场景,使用企业微信官方提供的 JS-SDK ,我们可以借助企业微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用企业微信分享、扫一扫等企业微信特有的能力,为企业微信用户提供更优质的网页体验。
主要的优势在于全平台、以及结合企微实现智能营销。
企微官方提供了三种场景供我们选择,本文介绍的是基于 JS-SDK 的 企业内部应用。
前端这块前期大概率遇到的坑有这些:
1.鉴权 2.技术栈选择、本地调试、企微 webview 的兼容性
下面基于我过去几个月做的项目,来具体说说
实际上在企微上自建应用的开发,也是通过 webview 来实现的,和常见的混合开发模式一样,只要登录流程完成后,后面的业务开发过程就是我们熟悉的 html,js 等前端技术了。
而若想使用企微的 api, 需要首先加载并注册 JS-SDK,它是一个 js 文件所以加载可以通过 script 标签的形式来引入,加载完后需要注册才能使用,其官方提供的注册函数如下
wx.config({ beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题 debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,企业微信的corpID timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名,见 附录-JS-SDK使用权限签名算法 jsApiList: [] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来 }); wx.agentConfig({ corpid: '', // 必填,企业微信的corpid,必须与当前登录的企业一致 agentid: '', // 必填,企业微信的应用id (e.g. 1000247) timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名,见附录-JS-SDK使用权限签名算法 jsApiList: ['selectExternalContact'], //必填,传入需要使用的接口名称 success: function(res) { // 回调 }, fail: function(res) { if(res.errMsg.indexOf('function not exist') > -1){ alert('版本过低请升级') } } });
config 接口是注册当前企业权限,而agengConfig 是当前应用权限,它们的签名算法是完全一样的,整体流程大概如下:
access_token =》jsapi_ticket => signature =》wx.config、wx.agentConfig 注册 ,这里面涉及到几个关键字和流程
1、线上是通过 Oauth2 登录的形式获取 userId 信息的,但是本地调试无法这样做,所以需要让后端提供一个 mock 登录的接口;
2、本地也无法调用 企微原生js 的,所以在 dev 模式下可以忽略企微api注册函数的执行;
3、页面调试可以在浏览器中,也可以在企微的webview 中,到 2021年国庆前,企微 webview 的 chrome 内核版本已经连续 5 年没更新,导致不支持 vue3;不过现在因该可以了,将此网址在 webview 中打开 https://ping.huatuo.qq.com/, window 下可以看到当前chrome 内核版本。
window 下
mac 下
4、虽然在Chrome 浏览器里调试很方便,但是毕竟最终运行是在 企微环境,所以客户端里调试也必不可少的,window 和 mac 下都需要手动开启相关配置。
5、企微提供的 api 有时候需要快速的预览一下,这时候本地不太好模拟,好在官方提供了一个接口预览对页面,可以将这个链接放到 webview 里打开测试下,注意,应用里打开对消息才能启用webview 哦,普通聊天框里只会打开系统默认浏览器。
21年国庆前后,企微终于将 pc 端使用5年+的 chrome:53 内核,升级到了chrome:91, 意味着我可以放心将项目升级到 vue3 了(直接一直被window pc 端拖后腿。。)
近期我看企微开发者文档,官方已经在花精力优化开发文档、教程了,希望企微平台的开发体验越来越好吧。
前言
企微开发是属于混合开发的一个典型场景,使用企业微信官方提供的 JS-SDK ,我们可以借助企业微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用企业微信分享、扫一扫等企业微信特有的能力,为企业微信用户提供更优质的网页体验。
主要的优势在于全平台、以及结合企微实现智能营销。
企微官方提供了三种场景供我们选择,本文介绍的是基于 JS-SDK 的 企业内部应用。
前端这块前期大概率遇到的坑有这些:
1.鉴权 2.技术栈选择、本地调试、企微 webview 的兼容性
下面基于我过去几个月做的项目,来具体说说
登录鉴权流程
实际上在企微上自建应用的开发,也是通过 webview 来实现的,和常见的混合开发模式一样,只要登录流程完成后,后面的业务开发过程就是我们熟悉的 html,js 等前端技术了。
而若想使用企微的 api, 需要首先加载并注册 JS-SDK,它是一个 js 文件所以加载可以通过 script 标签的形式来引入,加载完后需要注册才能使用,其官方提供的注册函数如下
config 接口是注册当前企业权限,而agengConfig 是当前应用权限,它们的签名算法是完全一样的,整体流程大概如下:
access_token =》jsapi_ticket => signature =》wx.config、wx.agentConfig 注册 ,这里面涉及到几个关键字和流程
本地开发调试
1、线上是通过 Oauth2 登录的形式获取 userId 信息的,但是本地调试无法这样做,所以需要让后端提供一个 mock 登录的接口;
2、本地也无法调用 企微原生js 的,所以在 dev 模式下可以忽略企微api注册函数的执行;
3、页面调试可以在浏览器中,也可以在企微的webview 中,到 2021年国庆前,企微 webview 的 chrome 内核版本已经连续 5 年没更新,导致不支持 vue3;不过现在因该可以了,将此网址在 webview 中打开 https://ping.huatuo.qq.com/, window 下可以看到当前chrome 内核版本。
window 下
mac 下
4、虽然在Chrome 浏览器里调试很方便,但是毕竟最终运行是在 企微环境,所以客户端里调试也必不可少的,window 和 mac 下都需要手动开启相关配置。
5、企微提供的 api 有时候需要快速的预览一下,这时候本地不太好模拟,好在官方提供了一个接口预览对页面,可以将这个链接放到 webview 里打开测试下,注意,应用里打开对消息才能启用webview 哦,普通聊天框里只会打开系统默认浏览器。
技术栈支持,兼容性
21年国庆前后,企微终于将 pc 端使用5年+的 chrome:53 内核,升级到了chrome:91, 意味着我可以放心将项目升级到 vue3 了(直接一直被window pc 端拖后腿。。)
后续
近期我看企微开发者文档,官方已经在花精力优化开发文档、教程了,希望企微平台的开发体验越来越好吧。