您当前的位置:首页 > 电脑百科 > 程序开发 > 移动端 > 小程序

钉钉小程序api的TS类型声明文件

时间:2022-09-21 14:47:58  来源:  作者:JS前端开发

钉钉小程序官方文档:文档 - 钉钉开放平台

吐槽一下,当时文档很不友好(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
    /**
    * 获取网络状态
    *
    */
    ge.NETworkType(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


Tags:小程序   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
最近有朋友问我:抖音小程序怎么开通?继微信小程序火爆之后,抖音也推出了自己的小程序,只是在前两年内测阶段没有完全开放给第三方开发公司,抖音小程序对第三方开发公司的包容性也...【详细内容】
2022-11-01  Tags: 小程序  点击:(2)  评论:(0)  加入收藏
说到开发小程序,你的脑海中浮现的大概是这样的页面:...【详细内容】
2022-10-22  Tags: 小程序  点击:(7)  评论:(0)  加入收藏
前置准备:一张需要被关联的表格具体步骤(5): 添加关联字段 选择 被关联表 双击关联字段格 选择被关联数据 关联成功步骤分解:添加关联字段 选择被关联表 双击关联字段格...【详细内容】
2022-10-20  Tags: 小程序  点击:(8)  评论:(0)  加入收藏
移动互联网5G时代的到来预示着未来的短视频行业用户还会继续增长,短视频电商小程序无疑就是一个好的红利分割的入场券,如果现在入局就是先运营抖音,然后进行带货卖货也可以进入...【详细内容】
2022-10-17  Tags: 小程序  点击:(15)  评论:(0)  加入收藏
本报记者 李 冰日前,微信刷掌支付小程序上线,相关服务需在刷掌设备上开通。这是继密码支付、指纹支付和刷脸支付等方式之后,又一新型支付方式。业界普遍认为,随着互联网技术发展...【详细内容】
2022-10-17  Tags: 小程序  点击:(10)  评论:(0)  加入收藏
Tech星球独家获悉,微信内已上线“微信刷掌支付”小程序,可为用户更加便捷的管理刷掌支付,但刷掌支付功能需要在刷掌设备中开通。刷掌支付是继密码支付、指纹支付、刷脸支付后,微信的又一新支付方式。据悉,目前微信支付已在...【详细内容】
2022-10-14  Tags: 小程序  点击:(15)  评论:(0)  加入收藏
WiFi系统开发方案,WiFiApp开发,WiFi小程序开发,需要了解WiFi详情费用工期模式制度功能等可咨询从事各类软件开发,优秀的团队为您量身定制解决方案,价格合理,用心服务。WiFi软件功...【详细内容】
2022-10-11  Tags: 小程序  点击:(27)  评论:(0)  加入收藏
很多朋友都喜欢微信小程序,不用下载安装,点开就能使用。下面这6个骨灰级的微信小程序,涵盖工作、学习、生活,每天都能用得到。 01*历史价格查询亮点:拒绝乱花冤枉钱。 不管你...【详细内容】
2022-09-30  Tags: 小程序  点击:(22)  评论:(0)  加入收藏
微信iOS版本悄悄上线了两个新功能,退出群聊保留聊天记录,以及可以将小程序放置到 iPhone和iPad 的桌面上退出群聊保留聊天记录此前,退出微信群后相应的聊天记录也会被删除,无法...【详细内容】
2022-09-28  Tags: 小程序  点击:(44)  评论:(0)  加入收藏
钉钉小程序官方文档:文档 - 钉钉开放平台吐槽一下,当时文档很不友好(2019年年底前),还会出现打不开的情况,可能现在会好一些吧???踩过很多坑,边调研边开发模式,技术栈uni-app+TS,以下主...【详细内容】
2022-09-21  Tags: 小程序  点击:(62)  评论:(0)  加入收藏
▌简易百科推荐
说到开发小程序,你的脑海中浮现的大概是这样的页面:...【详细内容】
2022-10-22  互联共商   网易号  Tags:微信小程序   点击:(7)  评论:(0)  加入收藏
前置准备:一张需要被关联的表格具体步骤(5): 添加关联字段 选择 被关联表 双击关联字段格 选择被关联数据 关联成功步骤分解:添加关联字段 选择被关联表 双击关联字段格...【详细内容】
2022-10-20  TOWIFY  知乎  Tags:小程序   点击:(8)  评论:(0)  加入收藏
WiFi系统开发方案,WiFiApp开发,WiFi小程序开发,需要了解WiFi详情费用工期模式制度功能等可咨询从事各类软件开发,优秀的团队为您量身定制解决方案,价格合理,用心服务。WiFi软件功...【详细内容】
2022-10-11  武汉微驱动科技有限公司     Tags:小程序   点击:(27)  评论:(0)  加入收藏
钉钉小程序官方文档:文档 - 钉钉开放平台吐槽一下,当时文档很不友好(2019年年底前),还会出现打不开的情况,可能现在会好一些吧???踩过很多坑,边调研边开发模式,技术栈uni-app+TS,以下主...【详细内容】
2022-09-21  JS前端开发    Tags:小程序   点击:(62)  评论:(0)  加入收藏
前置申请支付宝相关准备内容:小程序 - 微信支付接入指引 - 微信支付商户平台先看文档小程序登录流程:小程序登录 | 微信开放文档登录流程图 这个说明一定要好好看清楚!!! 说明 ...【详细内容】
2022-09-19  JS前端开发  今日头条  Tags:微信小程序   点击:(79)  评论:(0)  加入收藏
随着科技时代的不断进步,不知不觉之间,我们的生活、工作好像都离不开网络的支持,从最初的各种论坛、阿里巴巴等网页端,在移动设备的迅速发展中慢慢向着手机APP转移,不管是网上商...【详细内容】
2022-08-28  童言软件开发    Tags:小程序   点击:(66)  评论:(0)  加入收藏
1、小程序简介Mall4j 项目致力于为中小企业打造一个完整、易于维护的开源的电商系统,采用现阶段流行技术实现。后台管理系统包含商品管理、订单管理、运费模板、规格管理、会...【详细内容】
2022-08-25  优迈源码分享    Tags:电商小程序   点击:(90)  评论:(0)  加入收藏
小程序制作似乎是程序员的范围,这似乎与我们的新手程序不密切相关。但事实上,在程序员的帮助下,我们也可以自己制作小程序。这里将教你如何0基础自己如何制作小程序?一开始,不要...【详细内容】
2022-08-18  小帆建网站小程序制作     Tags:小程序   点击:(49)  评论:(0)  加入收藏
一、摘要 随着携程接入小程序平台类型的增加,前端需要负责的端越来越多,研发成本也随之成倍增加。为了解决一套代码多端运行的诉求,携程小程序框架不断调整、升级,逐渐形成了携...【详细内容】
2022-08-17  携程技术    Tags:Taro   点击:(73)  评论:(0)  加入收藏
根据官方数据,微信小程序的数量和使用总数不断增加,在交通天花板环境中,用户增长和使用改进是一个重要的机会,许多线下个人商店也看到了这一趋势,抓住机会,制作微信小程序。那么,我...【详细内容】
2022-08-17  小帆建网站小程序制作    Tags:小程序   点击:(62)  评论:(0)  加入收藏
站内最新
站内热门
站内头条