# 钉钉开发
# 钉钉引入
cnpm i dingtalk-jsapi -D
获取钉钉jdk返回code
import * as dd from 'dingtalk-jsapi'
export function getCode(cb){
dd.ready(function () {
const corpId = process.env.VUE_APP_BASE_CORPID;
console.log(corpId)
dd.runtime.permission.requestAuthCode({
corpId,
onSuccess: function (result) {
console.log(result)
cb(result.code)
},
onFail: function (err) {
console.log(err)
// cb(err)
// alert(JSON.stringify(err))
// alert(err);
}
});
});
}
- 与后台交互,把getCode获得的值提供给后端进行应用鉴权
getCode((res)=>{
const data={
agentId:process.env.VUE_APP_BASE_AgentId,
code:res
}
getUserInfo(data).then(result=>{
setToken(result.data.token)
}).catch(e=>{
})
})
# 钉钉链接跳转微应用
dingtalk://dingtalkclient/action/openapp?corpid=免登企业corpId&container_type=work_platform&app_id=0_{应用agentid}&redirect_type=jump&redirect_url=跳转url
- container_type使用哪种方式打开链接:
work_platform:表示用工作台打开 app_id:第三方企业应用应填写appId,企业自建应用填写0_agentId,由数字0、下划线和agentId拼接组成。其中appId,agentId可在应用详情中查看。- 小程序和微应用配置跳转不一致:eapp://pages/index/index?param1=aa¶m2=bb 钉钉开放文档 (opens new window)
# 注意事项
钉钉中的比如pdf查看,如果使用window.open会自动跳转到浏览器,所以需要使用第三方插件如pdfjs进行对pdf的处理