# 钉钉开发

# 钉钉引入

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&param2=bb 钉钉开放文档 (opens new window)

# 注意事项

钉钉中的比如pdf查看,如果使用window.open会自动跳转到浏览器,所以需要使用第三方插件如pdfjs进行对pdf的处理

最后更新: 11/10/2021, 11:48:45 AM