网站首页 > 技术文章 正文
钉钉小程序官方文档:文档 - 钉钉开放平台
吐槽一下,当时文档很不友好(2019年年底前),还会出现打不开的情况,可能现在会好一些吧???
踩过很多坑,边调研边开发模式,技术栈uni-app+TS,以下主要是类型声明,直接拿来就用,其他小程序相通。
在typings目录下新增dd.d.ts文件:
declare namespace DDModule {
export class DD {
// 钉钉企业id
corpId: string
/**
* 获取钉钉免登码
*
*/
getAuthCode(options: GetAuthCodeOptions): void;
/**
* 压缩图片
*
*/
compressImage(options: CompressImageOptions): void;
/**
* 保存在线、本地临时或者永久地址图片到手机相册。
*
*/
saveImage(options: SaveImageOptions): void;
/**
* 提示框
*
*/
alert(options: AlertOptions): void
/**
* 确认框
*
*/
confirm(options: ConfirmOptions): void
/**
* 调用钉钉扫码
*
*/
scan(options: scanOptions): void
/**
* 选人与部门
*
*/
complexChoose(options: ComplexOptions): void
/**
* 选取部门
*
*/
chooseDepartments(options: ChooseDepartmentsOptions): void
/**
* 选取手机通信录
*
*/
choosePhonebook(options: ChoosePhoneBookOptions): void
/**
* 获取全局唯一录音管理器
*
*/
getRecorderManager(): RecordManager
/**
* 获取全局背景音频管理
*
*/
getBackgroundAudioManager(): BackgroundAudioManager
/**
* 上传文件
*
*/
uploadFile(options: UploadOptions): void
/**
* 获取网络状态
*
*/
getNetworkType(option: GetNetworkOptions): void
/**
* 选取图片
*
*/
chooseImage(options: DDChooseImageOptions): void
/**
* 选取视频
*
*/
chooseVideo(options: DDChooseVideoOptions): void
/**
* 图片预览
*
*/
previewImage(options: DDPreviewImageOptions): void
/**
* 弱提示
*
*/
showToast(options: ShowToastOptions): void
// 移除缓存
removeStorage(param: { key: string | number }): void
}
interface ShowToastOptions {
content?: string,
type?: string
duration?: number,
success?(param?: any): void,
fail?(e: any): void,
complete?(): void,
}
interface GetAuthCodeOptions {
success(param: { authCode: string }): void
fail?(param: any): void
}
interface CompressImageOptions {
/**
* 要压缩的图片地址数组
*/
filePaths: string[],
/**
* 压缩级别,支持 0 ~ 4 的整数 4为网络自适应,其他是越高越清晰
*/
compressLevel?: 0 | 1 | 2 | 3 | 4,
/**
* 成功回调
*/
success?(param?: FilePaths): void,
/**
* 失败回调
*/
fail?(e: any): void,
/**
* 无论成功或者失败回调
*/
complete?(): void,
}
interface FilePaths {
filePaths?: string[]
}
interface SaveImageOptions {
/**
* 图片地址
*/
url: string,
/**
* 成功回调
*/
success?(param?: any): void,
/**
* 失败回调
*/
fail?(e: any): void,
/**
* 无论成功或者失败回调
*/
complete?(): void,
}
interface AlertOptions {
/**
* 标题
*/
title?: string
/**
* 内容
*/
content?: string
/**
* 按钮名字
*/
buttonText?: string
/**
* 成功回调
*/
success?(param?: any): void,
/**
* 失败回调
*/
fail?(param?: any): void,
/**
* 无论成功或者失败回调
*/
complete?(param?: any): void,
}
interface ConfirmOptions {
/**
* 标题
*/
title: string
/**
* 内容
*/
content: string
/**
* 确认按钮名字
*/
confirmButtonText?: string
/**
* 取消按钮名字
*/
cancelButtonText?: string
/**
* 成功回调 确认为true 取消为fail
*/
success?(flag: boolean): void,
/**
* 失败回调
*/
fail?(param?: any): void,
/**
* 无论成功或者失败回调
*/
complete?(param?: any): void,
}
interface scanOptions {
/**
* qr 二维码 bar 条形码
*/
type?: 'qr' | 'bar'
/**
* 成功回调
*/
success?(param?: any): void,
/**
* 失败回调
*/
fail?(param?: any): void,
/**
* 无论成功或者失败回调
*/
complete?(param?: any): void,
}
interface ComplexOptions {
/**
* 标题
*/
title?: string,
/**
* 是否多选
*/
multiple?: boolean,
/**
* 超过限定人数返回提示
*/
limitTips?: string,
/**
* 最大可选人数
*/
maxUsers?: number,
/**
* 已选用户,值为userId列表
*/
pickedUsers?: string[],
/**
* 已选部门
*/
pickedDepartments?: string[]
/**
* 不可选用户,值为userId列表
*/
disabledUsers?: string[],
/**
* 不可选部门
*/
disabledDepartments?: string[],
/**
* 必选用户(不可取消选中状态),值为userId列表
*/
requiredUsers?: string[],
/**
* 必选部门(不可取消选中状态
*/
requiredDepartments?: string[],
/**
* 选人权限,目前只有GLOBAL这个参数)
*/
permissionType?: 'GLOBAL',
/**
* true:返回人员信息
* false:返回人员和部门信息
*/
responseUserOnly?: boolean,
/**
* 仅支持0和-1两个值:0表示从企业最上层开始,-1表示从自己部门开始
*/
startWithDepartmentId?: 0 | -1
/**
* 成功回调
*/
success?(param: {
selectedCount?: number,
users?: any,
departments?: any
}): void
/**
* 失败回调
*/
fail?(e: any): void
}
interface ChooseDepartmentsOptions {
/**
* 标题
*/
title?: string,
/**
* 是否多选
*/
multiple?: boolean,
/**
* 超过限定人数返回提示
*/
limitTips?: string,
/**
* 最大可选部门
*/
maxDepartments?: number,
/**
* 已选部门
*/
pickedDepartments?: string[]
/**
* 不可选部门
*/
disabledDepartments?: string[],
/**
* 必选部门(不可取消选中状态
*/
requiredDepartments?: string[],
/**
* 选人权限,目前只有GLOBAL这个参数)
*/
permissionType?: 'GLOBAL',
/**
* 成功回调
*/
success?(param: {
selectedCount?: number,
users?: any,
departments?: any
}): void
/**
* 失败回调
*/
fail?(e: any): void
}
interface ChoosePhoneBookOptions {
/**
* 是否多选
*/
multiple?: boolean
/**
* 人数限制,当multiple为true才生效,可选范围1-1500
*/
maxUsers?: number
/**
* 超过人数限制的提示语可以用这个字段自定义
*/
limitTips?: string
/**
* 如果你需要修改选人页面的title,可以在这里赋值
*/
title?: string
/**
* 成功回调
*/
success?(param: {
name?: string,
avatar?: any,
mobile?: any
}): void
/**
* 失败回调
*/
fail?(e: any): void
}
interface RecordManager {
start(param?: { duration?: number }): void, // 开始
stop(): void, // 结束
onstart(): void, // 监听开始
onstop(res: { tempFilePath: string }): void, // 监听结束
onerror(res: { errorCode?: 20001 | 13 | 2 | 5, errorMessage?: string }): void, // 监听报错 错误码 20001 正在录音,13 保存失败,2参数错误,5没有读写权限
}
interface BackgroundAudioManager {
src?: string,// 音频地址
title?: string, // 音频标题
coverImgUrl?: string, // 音频封面
paused?: boolean, // 是否暂停
duration?: number, // 音频长度
currentTime?: number, // 音频当前播放的时间
play(): void // 播放
pause(): void // 暂停
stop(): void // 停止
seek(position: number): void // 跳转指定位置,以秒为单位
onPlay(): void, // 监听开始
onPause(): void, // 监听暂停
onStop(): void, // 监听停止
onEnded(): void, // 监听结束
onTimeUpdate(): void, // 监听时间变化
onError(): void, // 监听报错
}
}
interface UploadOptions {
url: string // 上传的路径
filePath: string // 本地文件的虚拟地址
fileName: string // 对应的key
fileType: 'image' | 'audio' | 'video'
header?: Object
formData?: Object
success?(param: any): void
fail?(e: any): void
complete?(): void,
}
interface GetNetworkOptions {
success?(param: {
networkAvailable?: boolean,
networkType?: 'UNKNOWN' | 'NOTREACHABLE' | 'WIFI' | '3G' | '2G' | '4G' | 'WWAN',
}): void
fail?(e: any): void,
complete?(e: any): void,
}
interface DDChooseVideoOptions {
sourceType?: string[], // 视频来源 可选值 album camera
maxDuration?: number, // 视频长度
covered?: boolean,
success?(param: {
filePath: string,
duration?: number,
size?: number,
height?: number,
width?: number,
coverPath?: string,
}): void
fail?(e: any): void
complete?(): void,
}
interface DDChooseImageOptions {
count?: number // 最大可选数量
sourceType?: string[] // 图片来源 可选值 album camera
success?(param: {
filePaths: string[], // 所选图片本地占位符数组
}): void
fail?(e: any): void
complete?(): void,
}
interface DDPreviewImageOptions {
urls: string[],
current?: number,
success?(e: any): void,
fail?(e: any): void,
complete?(): void,
}
然后在index.d.ts文件,其他.d.ts类型文件亦可
declare const dd: DDModule.DD
猜你喜欢
- 2025-05-21 n8n — 可扩展的自动化工作流
- 2025-05-21 可以直接拿来做项目的开源框架
- 2025-05-21 LangFlow技术深度解析:可视化编排LangChain应用的新范式(2)
- 2025-05-21 项目中使用 husky 格式化代码和校验 commit 信息
- 2025-05-21 鸿蒙开发之ArkTS制作显式动画
- 2025-05-21 开发者必备路线图:从此告别技术迷茫
- 2025-05-21 鸿蒙NEXT开发-ArkTS
- 2025-05-21 阮一峰高质量免费 TypeScript 教程,适合有 JS 基础的人系统学习 TS
- 2025-05-21 前端项目自动检测更新并提示用户刷新页面
- 2025-05-21 Rust+Tauri2+React+TS剪切板管理桌面端应用开发示例
你 发表评论:
欢迎- 07-08记oracle日志挖掘实操&查询归档不正常增长情况(一)
- 07-08Oracle 伪列!这些隐藏用法你都知道吗?
- 07-08orcl数据库查询重复数据及删除重复数据方法
- 07-08重大故障!业务核心表被truncate删除,准备跑路……
- 07-08oracle数据恢复—oracle执行truncate命令误删除数据的数据恢复
- 07-08Oracle-rac 修改scanip(oracle 修改sequence cache)
- 07-08ORACLE RAC CDB和PDB切换(oracle数据库rac切换)
- 07-08Oracle rac haip作用(oracle rac的典型特征)
- 596℃几个Oracle空值处理函数 oracle处理null值的函数
- 589℃Oracle分析函数之Lag和Lead()使用
- 576℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 573℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 569℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 562℃【数据统计分析】详解Oracle分组函数之CUBE
- 549℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 542℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- 记oracle日志挖掘实操&查询归档不正常增长情况(一)
- Oracle 伪列!这些隐藏用法你都知道吗?
- orcl数据库查询重复数据及删除重复数据方法
- 重大故障!业务核心表被truncate删除,准备跑路……
- oracle数据恢复—oracle执行truncate命令误删除数据的数据恢复
- Oracle-rac 修改scanip(oracle 修改sequence cache)
- ORACLE RAC CDB和PDB切换(oracle数据库rac切换)
- Oracle rac haip作用(oracle rac的典型特征)
- 新手小白怎么学UI设计 推荐学习路线是什么
- 超实用!0基础UI设计自学指南(0基础学ui设计好就业吗)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- 前端获取当前时间 (50)
- 前端接口 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)