注意
该项目尚处于开发调试状态,不保证所有功能正常使用,use at your own risk。
如在使用过程中发现了问题,欢迎在下面留言。
主要特性
jwecom 在能力上可以完全替代 jweixin.js,并在 jweixin 的基础上增加了以下特性:
- 自动调用 config、agentConfig
- API promise 化
- 提供 ts 定义
- 通过 npm 发布
使用方法
通过 npm 引入:
import * as ww from 'jwecom'
// 注册应用信息
ww.register({
corpId: 'ww7ca4776b2a70000',
jsApiList: [
'selectExternalContact',
],
async getConfigSignature(url) {
// 根据 url 生成 config 签名信息(需要开发者自行实现)
// 返回 { timestamp, nonceStr, signature }
return getJsApiSignature(url)
}
})
// 可以立刻调用JS接口,无需等待ready回调
ww.selectExternalContact({
success(res) {
console.log(res.userIds[0])
}
})
通过 script 标签引入:
<script src="https://wwcdn.weixin.qq.com/node/open/js/jwecom-1.0.0.js"></script>
<script>
alert(ww.VERSION)
</script>
API
常规接口可参考以下文档:
所有命令接口均已 promise 化,具体用法请参考 ts 定义。
其他接口可以参考项目文档:
快速接入
为方便开发者快速接入,jwecom 提供了 getSignature 方法。开发者可以通过内联 jsapi_ticket 快速跑通接入流程:
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// 该代码仅用于快速接入,请勿在生产环境对外暴露JSAPI_TICKET
// Ticket有效期为2个小时,过期后请手动更换
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
const JSAPI_TICKET = 'sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg'
ww.register({
corpId: 'ww7ca4776b2a70000',
getConfigSignature() {
return ww.getSignature(JSAPI_TICKET)
},
onConfigComplete(res) {
alert(JSON.stringify(res))
}
})
JSAPI Ticket 的获取方法可以参考企业微信文档,在开发阶段我们也可以通过以下命令快速获取:
# CORPID、SECRET为占位符,请自行填入真实的企业ID和应用Secret
npx wwutil ticket CORPID SECRET
已知问题
在使用通讯录展示组件时,需要用 jwecom 替换全局的 wx 对象,同时页面上仍需引入 jwxwork-1.0.0.js
(可以不再引入 jweixin-1.2.0.js
):
import * as ww from 'jwecom'
Object.defineProperty(window, 'wx', {
configurable: true,
value: ww
})
ww.register({
// register options
})
ww.initOpenData().then(() => {
WWOpenData.bindAll(document.querySelectorAll('ww-open-data'))
})
2021年11月23日现在这个包还可以用吗
账号异常怎么申诉
请问下通过 npm 怎么在vue项目安装jwecom 啊
开源的吗?源代码在哪里
<ww-open-data type="userName" openid="{{ userId }}"></ww-open-data>
这样渲染不出对应姓名
<ww-open-data type="userName" openid="Zhangsan"></ww-open-data>
这样就可以渲染出,
请问这个什么原因