钉钉 JS-API
钉钉提供了丰富的JSAPI能力,例如原生弹框、设备信息、扫描等能力,宜搭开发者可以利用钉钉原生提供的API能力提供更好的用户体验。
警告
调用钉钉JS-API需要注意以下事项:
- 宜搭应用中,不保证 window.dd 存在 (目前仅手机端会引入一个旧版资源),建议用户手动引入;
- 宜搭应用中,即使不配置 dd.config 进行 JSAPI 鉴权操作,仍可调用需要鉴权后才能使用的 API。请谨慎调用;
- 调用 JSAPI 时,需要的 corpId 参数可以从
const { corpId } = window.pageConfig || {};获取;
使用指南
步骤1:异步加载钉钉JSAPI资源
由于宜搭页面中不保证 window.dd一定存在,所以保险起见,用户需要在页面的didMount生命周期中手动加载钉钉的JSAPI脚本,如下所示:

实现代码如下所示:
export function didMount() {
const script = document.createElement('script');
script.src = 'https://g.alicdn.com/dingding/dingtalk-jsapi/2.10.3/dingtalk.open.js';
document.body.appendChild(script);
}
资源引入完成后,即可通过 window.dd 调用 JSAPI 中的相关功能。
步骤2:调用钉钉JSAPI
钉钉的JSAPI加载完成后,我们便可以在动作面板中通过window.dd调用钉钉的API进行相应的操作了,如下所示:
export function isDingTalk() {
return window.navigator && /dingtalk/i.test(window.navigator.userAgent)
}
export function dingAlert() {
if (window.dd && this.isDingTalk()) {
window.dd.device.notification.alert({
message: "测试",
title: "提示",//可传空
buttonName: "收到",
onSuccess: function () {
},
onFail: function (err) { }
});
}
}
钉钉端内的展示效果如下所示:

警告
由于很多钉钉JSAPI要求必须端内调用,因此在调用钉钉JSAPI时,需要提前先判断一下是否在钉钉端内,判断代码如下所示:
export function isDingTalk() {
return window.navigator && /dingtalk/i.test(window.navigator.userAgent)
}
API列表
容器
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 获取容器版本号 | dd.version | 不需要 | 支持 | 支持 | 不支持 |
弹框
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| alert | device.notification.alert | 不需要 | 支持 | 支持 | 支持 |
| confirm | device.notification.confirm | 不需要 | 支持 | 支持 | 支持 |
| prompt | device.notification.prompt | 不需要 | 支持 | 支持 | 支持 |
| 手机震动 | device.notification.vibrate | 不需要 | 支持 | 支持 | 不支持 |
| toast | device.notification.toast | 不需要 | 支持 | 支持 | 支持 |
| actionsheet | device.notification.actionSheet | 不需要 | 支持 | 支持 | 支持 |
| 显示加载 | device.notification.showPreloader | 不需要 | 支持 | 支持 | 不支持 |
| 隐藏加载 | device.notification.hidePreloader | 不需要 | 支持 | 支持 | 不支持 |
| modal弹浮层 | device.notification.modal | 不需要 | 支持 | 支持 | 不支持 |
| extendModal | device.notification.extendModal | 不需要 | 支持 | 支持 | 不支持 |
| 多选组件 | biz.util.multiSelect | 不需要 | 支持 | 支持 | 不支持 |
摇一摇
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 启动摇一摇 | device.accelerometer.watchShake | 不需要 | 支持 | 支持 | 不支持 |
| 停止摇一摇 | device.accelerometer.clearShake | 不需要 | 支持 | 支持 | 不支持 |
设备
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 获取网络类型 | device.connection.getNetworkType | 不需要 | 支持 | 支持 | 不支持 |
| 获取wifi状态 | device.base.getWifiStatus | 不需要 | 支持 | 支持 | 不支持 |
| 获取手机基础信息 | device.base.getPhoneInfo | 不需要 | 支持 | 支持 | 不支持 |
| 获取uuid | device.base.getUUID | 需要 | 支持 | 支持 | 不支持 |
| 获取热点接入信息 | device.base.getInterface | 需要 | 支持 | 支持 | 不支持 |
| 读取NFC芯片内容 | device.nfc.nfcRead | 不需要 | 支持 | 不支持 | 不支持 |
| NFC数据写入 | device.nfc.nfcWrite | 需要 | 支持 | 不支持 | 不支持 |
| 打开iOS系统设置 | device.base.openSystemSetting | 不需要 | 不支持 | 支持 | 不支持 |
| 打开Android系统设置 | device.base.openSystemSetting | 不需要 | 支持 | 不支持 | 不支持 |
日期&月历
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 日期选择器 | biz.util.datepicker | 不需要 | 支持 | 支持 | 不支持 |
| 时间选择器 | biz.util.timepicker | 不需要 | 支持 | 支持 | 不支持 |
| 日期及时间选择器 | biz.util.datetimepicker | 不需要 | 支持 | 支持 | 不支持 |
| 月历组件:选择某天 | biz.calendar.chooseOneDay | 不需要 | 支持 | 支持 | 不支持 |
| 月历组件:选择某时间 | biz.calendar.chooseDateTime | 不需要 | 支持 | 支持 | 不支持 |
| 月历组件:选择某天 | biz.calendar.chooseHalfDay | 不需要 | 支持 | 支持 | 不支持 |
| 月历组件:选择日期区间 | biz.calendar.chooseInterval | 不需要 | 支持 | 支持 | 不支持 |
导航栏
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 设置导航栏颜色 | 拼接dd_nav_bgcolor参数 | 不需要 | 支持 | 支持 | 不支持 |
| 微应用页面支持横屏 | 拼接dd_orientation参数 | 不需要 | 支持 | 支持 | 不支持 |
| 设置左侧导航按钮文本 | biz.navigation.setLeft | 不需要 | 不支持 | 支持 | 支持 |
| PC端左侧按钮点击事件 | addEventListener | 不需要 | 不支持 | 不支持 | 支持 |
| PC端左侧按钮点击事件,移除监听回调函数 | removeEventListener | 不需要 | 不支持 | 不支持 | 支持 |
| 设置导航栏标题 | biz.navigation.setTitle | 不需要 | 支持 | 支持 | 支持 |
| 标题栏添加问号图标 | biz.navigation.setIcon | 不需要 | 支持 | 支持 | 不支持 |
| 返回上一级页面 | biz.navigation.goBack | 不需要 | 支持 | 支持 | 不支持 |
| 关闭当前页面 | biz.navigation.close | 不需要 | 支持 | 支持 | 不支持 |
| 替换页面 | biz.navigation.replace | 不需要 | 支持 | 支持 | 不支持 |
| 关闭页面 | biz.navigation.quit | 不需要 | 不支持 | 不支持 | 支持 |
UI控件
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 输入框 | ui.input.plain | 不需要 | 支持 | 支持 | 不支持 |
| 设置顶部进度条颜色 | ui.progressBar.setColors | 不需要 | 支持 | 支持 | 不支持 |
| 启用下拉刷新 | ui.pullTorefresh.enable | 不需要 | 支持 | 支持 | 不支持 |
| 禁用下拉刷新 | ui.pullToRefresh.disable | 不需要 | 支持 | 支持 | 不支持 |
| 收起下拉刷新 | ui.pullToRefresh.stop | 不需要 | 支持 | 支持 | 不支持 |
| 禁用iOS Webview弹性效果 | ui.webViewBounce.disable | 不需要 | 不支持 | 支持 | 不支持 |
| 启用iOS Webview弹性效果 | ui.webViewBounce.enable | 不需要 | 不支持 | 支持 | 不支持 |
获取免登授权码
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 获取微应用免登授权码 | runtime.permission.requestAuthCode | 不需要 | 支持 | 支持 | 支持 |
| 获取微应用反馈式操作的临时授权码 | runtime.permission.requestOperateAuthCode | 需要 | 支持 | 支持 | 支持 |
扫码
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 扫条形码、二维码 | biz.util.scan | 不需要 | 支持 | 支持 | 不支持 |
| 扫名片 | biz.util.scanCard | 需要 | 支持 | 支持 | 不支持 |
存储
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 设置存储信息 | util.domainStorage.setItem | 不需要 | 支持 | 支持 | 不支持 |
| 获取存储信息 | util.domainStorage.getItem | 不需要 | 支持 | 支持 | 不支持 |
| 删除存储信息 | util.domainStorage.removeItem | 不需要 | 支持 | 支持 | 不支持 |
地图
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 获取当前地理位置信息(单次定位) | device.geolocation.get | 需要 | 支持 | 支持 | 不支持 |
| 连续获取当前地理位置信息(持续定位) | device.geolocation.start | 需要 | 支持 | 支持 | 不支持 |
| 停止连续定位 | device.geolocation.stop | 需要 | 支持 | 支持 | 不支持 |
| 批量连续定位状态 | device.geolocation.status | 不需要 | 支持 | 支持 | 不支持 |
| 地图定位 | biz.map.locate | 需要 | 支持 | 支持 | 不支持 |
| 地图页面支持搜索 | biz.map.search | 需要 | 支持 | 支持 | 不支持 |
| 展示位置 | biz.map.view | 需要 | 支持 | 支持 | 不支持 |
业务
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 分享 | biz.util.share | 不需要 | 支持 | 支持 | 不支持 |
| 下拉控件 | biz.util.chosen | 不需要 | 支持 | 支持 | 不支持 |
| 复制到粘贴板 | biz.clipboardData.setData | 需要 | 支持 | 支持 | 不支持 |
| 打开应用 | biz.microApp.openApp | 不需要 | 支持 | 支持 | 不支持 |
文件
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 批量检测本地文件是否存在 | biz.util.isLocalFileExist | 不需要 | 不支持 | 不支持 | 支持 |
| 打开本地文件 | biz.util.openLocalFile | 不需要 | 不支持 | 不支持 | 支持 |
| 下载文件 | biz.util.downLoadFile | 不需要 | 不支持 | 不支持 | 支持 |
图片
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 图片预览 | biz.util.previewImage | 不需要 | 支持 | 支持 | 支持 |
打开新页面
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 打开应用内页面 | biz.util.open | 需要 | 支持 | 支持 | 支持 |
| 打开目标页面 | biz.util.openLink | 不需要 | 支持 | 支持 | 支持 |
| 打开模态框 | biz.util.openModal | 不需要 | 不支持 | 不支持 | 支持 |
| 打开侧边面板 | biz.util.openSlidePanel | 不需要 | 不支持 | 不支持 | 支持 |
| 打开链接 | 打开音视频链接 | 需要 | 支持 | 支持 | 支持 |
电话
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 拨打钉钉电话 | biz.telephone.call | 需要 | 支持 | 支持 | 不支持 |
| 通用电话拨打 | biz.telephone.showCallMenu | 需要 | 支持 | 支持 | 不支持 |
| 检查某企业的办公电话开通状态 | biz.telephone.checkBizCall | 需要 | 支持 | 支持 | 不支持 |
| 拨打单人电话选项(可定制) | biz.telephone.quickCallList | 需要 | 支持 | 支持 | 支持 |
发钉
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| DING 2.0 发钉 | biz.ding.create | 需要 | 支持 | 支持 | 支持 |
| DING 1.0 发钉 | biz.ding.post | 需要 | 不支持 | 不支持 | 支持 |
通讯录选人
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| PC端选择企业内部的人 | biz.contact.choose | 需要 | 不支持 | 不支持 | 支持 |
| 选取手机通讯录 | biz.contact.chooseMobileContacts | 需要 | 支持 | 支持 | 不支持 |
| 选择部门和人 | biz.contact.complexPicker | 需要 | 支持 | 支持 | 支持 |
| 选择部门信息 | biz.contact.departmentsPicker | 需要 | 支持 | 支持 | 支持 |
| 创建企业群 | biz.contact.createGroup | 需要 | 支持 | 支持 | 不支持 |
| 设定规则选人 | biz.contact.setRule | 需要 | 支持 | 支持 | 不支持 |
角色
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 选择角色组或角色 | biz.contact.rolesPicker | 需要 | 支持 | 支持 | 不支持 |
外部联系人
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 选择外部联系人 | biz.contact.externalComplexPicker | 需要 | 支持 | 支持 | 不支持 |
| 编辑外部联系人 | biz.contact.externalEditForm | 需要 | 支持 | 支持 | 不支持 |
自定义联系人
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 单选自定义联系人 | biz.customContact.choose | 需要 | 支持 | 支持 | 支持 |
| 多选自定义联系人 | biz.customContact.multipleChoose | 需要 | 支持 | 支持 | 支持 |
会话
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 获取会话信息 | biz.chat.pickConversation | 需要 | 支持 | 支持 | 支持 |
| 根据corpid选择会话 | biz.chat.chooseConversationByCorpId | 需要 | 支持 | 支持 | 支持 |
| 打开与某个用户的单聊会话 | biz.chat.openSingleChat | 需要 | 支持 | 支持 | 不支持 |
| 根据chatId跳转到对应会话 | biz.chat.toConversation | 需要 | 支持 | 支持 | 不支持 |
钉盘
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 保存文件到钉盘 | biz.cspace.saveFile | 需要 | 支持 | 支持 | 不支持 |
| 预览钉盘文件 | biz.cspace.preview | 需要 | 支持 | 支持 | 支持 |
| 选取钉盘目录 | biz.cspace.chooseSpaceDir | 需要 | 支持 | 支持 | 不支持 |
| 上传附件到钉盘/从钉盘选择文件 | biz.util.uploadAttachment | 需要 | 支持 | 支持 | 支持 |
音频接口
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 开始录音 | device.audio.startRecord | 需要 | 支持 | 支持 | 不支持 |
| 停止录音 | device.audio.stopRecord | 需要 | 支持 | 支持 | 不支持 |
| 监听录音自动停止 | device.audio.onRecordEnd | 需要 | 支持 | 支持 | 不支持 |
| 下载音频 | device.audio.download | 需要 | 支持 | 支持 | 不支持 |
| 播放语音 | device.audio.play | 需要 | 支持 | 支持 | 不支持 |
| 暂停播放语音 | device.audio.pause | 需要 | 支持 | 支持 | 不支持 |
| 恢复暂停播放的语音 | device.audio.resume | 需要 | 支持 | 支持 | 不支持 |
| 停止播放音频 | device.audio.stop | 需要 | 支持 | 支持 | 不支持 |
| 监听播放自动停止 | device.audio.onPlayEnd | 需要 | 支持 | 支持 | 不支持 |
| 语音转文字 | device.audio.translateVoice | 需要 | 支持 | 支持 | 不支持 |
视频会议
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 发起视频会议 | biz.conference.videoConfCall | 需要 | 支持 | 支持 | 支持 |
在线课堂
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 发起在线课堂 | biz.live.startClassRoom | 需要 | 不支持 | 不支持 | 支持 |
支付
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 支付接口 | biz.alipay.pay | 需要 | 支持 | 支持 | 不支持 |
数据加解密
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 数据加密 | biz.util.encrypt | 需要 | 支持 | 支持 | 不支持 |
| 数据解密 | biz.util.decrypt | 需要 | 支持 | 支持 | 不支持 |
转屏横屏
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 微应用页面支持转屏 | 拼接dd_orientation=auto参数 | 不需要 | 支持 | 支持 | 不支持 |
| 微应用页面支持横屏 | 拼接dd_orientation参数 | 不需要 | 支持 | 支持 | 不支持 |
| 微应用页面全屏展示 | 拼接dd_full_screen=true参数 | 不需要 | 支持 | 支持 | 不支持 |
| 微应用页面导航栏透明 | 拼接dd_nav_translucent=true参数 | 不需要 | 支持 | 支持 | 不支持 |
| 旋转屏幕 | device.screen.rotateView | 不需要 | 支持 | 支持 | 不支持 |
| 重置旋转屏幕 | device.screen.resetView | 不需要 | 支持 | 支持 | 不支持 |
授权
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 授权获取审批实例数据 | biz.auth.requestAuthInfo | 需要 | 支持 | 支持 | 不支持 |
| 服务窗-获取用户授权 | biz.auth.requestAuthInfo | 需要 | 支持 | 支持 | 不支持 |
| 服务窗-单聊消息授权 | biz.auth.requestAuthInfo | 需要 | 支持 | 支持 | 不支持 |
办公电话
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 查询企业是否已开办公电话 | biz.conference.getCloudCallInfo | 需要 | 支持 | 支持 | 支持 |
| 发起办公电话呼叫 | biz.conference.createCloudCall | 需要 | 支持 | 支持 | 支持 |
| 查询话单列表 | biz.conference.getCloudCallList | 需要 | 支持 | 支持 | 支持 |
专属钉钉
| 接口说明 | JSAPI名称 | 是否需要鉴权 | Android | IOS | PC |
|---|---|---|---|---|---|
| 获取钉钉客户端是否为专属钉钉 | biz.realm.getUserExclusiveInfo | 不需要 | 支持 | 支持 | 支持 |
本文档对您是否有帮助?