最近公司项目又需要接入钉钉啦 ?,所以又去做了钉钉的企业内部应用对接。
应用场景 将之前已经有的 H5 应用接入钉钉内,无需输入账号密码便可直接登录。
技术栈
更目录执行以下命令
npm install dingtalk-jsapi --save
项目的 utils 目录下(当然也可以选择 common 组件目录)新建文件dd.js
import * as dd from 'dingtalk-jsapi'
export function getCode(callback) {
let corpId = 'your corpId'
if (dd.env.platform !== 'notInDingTalk') {
dd.ready(() => {
//使用SDK 获取免登授权码
dd.runtime.permission.requestAuthCode({
corpId: corpId,
onSuccess: info => {
// 根据钉钉提供的api 获得code后,再次调用这个callback方法
// 由于是钉钉获取code是异步操作,不知道什么时候执行完毕
// callback 函数会等他执行完毕后在自己调用自己
callback(info.code)
},
onFail: err => {
alert('fail')
alert(JSON.stringify(err))
}
})
})
}
}
corpId 可到后台 基本信息->开发信息(旧版)->企业自用账号信息 下查看。
import { getCode } from '@/utils/dd'
export default {
data() {
return { }
},
methods: {},
created() {
getCode(code => {
// 登录处理
})
}
}
从 H5 微应用的对接来看没有特别复杂的配置,对接起来很流畅,基本没有卡壳的地方