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

钉钉小程序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:小程序   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
京东小程序数据中心架构设计与最佳实践
一、京东小程序是什么京东小程序平台能够提供开放、安全的产品,成为品牌开发者链接京东内部核心产品的桥梁,致力于服务每一个信任我们的外部开发者,为不同开发能力的品牌商家提...【详细内容】
2024-03-27  Search: 小程序  点击:(12)  评论:(0)  加入收藏
我们一起解锁小程序开发新姿势
如今,鸿蒙开发日益受到广大开发者的关注,而小程序开发也早已成为互联网领域的热门话题。那么,我们不禁要问:是否有可能将这两者融为一体,将小程序开发的便捷与高效带入鸿蒙生态中...【详细内容】
2024-03-20  Search: 小程序  点击:(16)  评论:(0)  加入收藏
2024年微信小程序分账全攻略:对接流程详解,轻松实现资金分配
在微信小程序运营中,分账功能对于实现多方收益分配、优化资金流转至关重要。那么,微信小程序如何分账?又有哪些对接流程呢?跟着小编去看看吧!一、微信小程序分账概述微信小程序分...【详细内容】
2024-03-15  Search: 小程序  点击:(17)  评论:(0)  加入收藏
微信宣布规范“公众号文章诱骗点击小程序,骗取广告收益”行为
IT之家 3 月 14 日消息,微信公众平台运营中心今日发文称,平台近期发现部分创作者在文章中使用不完全或擦边的标题、擦边的封面和无意义或不完整的内容,并插入诱导性小程序卡片...【详细内容】
2024-03-15  Search: 小程序  点击:(17)  评论:(0)  加入收藏
抖音加大对短剧小程序推荐力度
新腕儿联合鞭牛士报道,2月26日消息,短剧近期数据平稳且持续发展,抖音加强了对短剧抖音小程序的推荐力度。以碧海剧场小程序为例,抖音短剧小程序向用户申请更多「通知信息」权限...【详细内容】
2024-02-26  Search: 小程序  点击:(39)  评论:(0)  加入收藏
一段微信小程序前端与后端连接的代码,带注解
微信小程序的前端和后端连接通常涉及到使用微信小程序提供的网络请求API与后端服务器进行通信。以下是一个简单的示例,展示如何使用微信小程序的前端代码向后端发送请求并处...【详细内容】
2024-01-24  Search: 小程序  点击:(56)  评论:(0)  加入收藏
小程序必须要安装部署SSL证书吗?
自2017年9月21日,微信发布一则《关于公众平台接口不再支持HTTP方式调用的公告》。明确表示,为保证数据传输安全,提高业务安全性,公众平台不再支持HTTP方式调用。应避免影响正常...【详细内容】
2024-01-02  Search: 小程序  点击:(70)  评论:(0)  加入收藏
一文了解什么是微信小程序
如果您无需下载和管理即可获得像原生 iOS 或 Android APP 一样流畅的体验会怎样?腾讯通过微信小程序实现了这一替代方案。一、什么是微信小程序?它们与原生应用程序和 H5 迷你...【详细内容】
2023-12-26  Search: 小程序  点击:(94)  评论:(0)  加入收藏
微信商户号怎么开通?教你申请0.2%费率商户码对接小程序公众号
随着移动互联网的快速发展,电子支付方式已经深入到人们的生活中,而微信支付作为中国领先的移动支付平台,在无数的应用场景中发挥着重要作用。这里先免费分享一个0.2费率的商户...【详细内容】
2023-12-16  Search: 小程序  点击:(64)  评论:(0)  加入收藏
小程序开发需要多少钱?小程序开发的真实成本:报价案例、费用价格表与开发周期解析
分享一个上海客户的微信小程序定制开发的需求,销售课程与相关商品。项目分为后台管理系统和小程序前端,功能不是太复杂,周期大概1个月,费用3万。大家可能比较关心几个地方,比如一...【详细内容】
2023-12-11  Search: 小程序  点击:(115)  评论:(0)  加入收藏
▌简易百科推荐
京东小程序数据中心架构设计与最佳实践
一、京东小程序是什么京东小程序平台能够提供开放、安全的产品,成为品牌开发者链接京东内部核心产品的桥梁,致力于服务每一个信任我们的外部开发者,为不同开发能力的品牌商家提...【详细内容】
2024-03-27  dbaplus社群    Tags:小程序   点击:(12)  评论:(0)  加入收藏
我们一起解锁小程序开发新姿势
如今,鸿蒙开发日益受到广大开发者的关注,而小程序开发也早已成为互联网领域的热门话题。那么,我们不禁要问:是否有可能将这两者融为一体,将小程序开发的便捷与高效带入鸿蒙生态中...【详细内容】
2024-03-20  前端充电宝  微信公众号  Tags:小程序   点击:(16)  评论:(0)  加入收藏
一段微信小程序前端与后端连接的代码,带注解
微信小程序的前端和后端连接通常涉及到使用微信小程序提供的网络请求API与后端服务器进行通信。以下是一个简单的示例,展示如何使用微信小程序的前端代码向后端发送请求并处...【详细内容】
2024-01-24    简易百科  Tags:代码   点击:(56)  评论:(0)  加入收藏
小程序必须要安装部署SSL证书吗?
自2017年9月21日,微信发布一则《关于公众平台接口不再支持HTTP方式调用的公告》。明确表示,为保证数据传输安全,提高业务安全性,公众平台不再支持HTTP方式调用。应避免影响正常...【详细内容】
2024-01-02  云诏    Tags:小程序   点击:(70)  评论:(0)  加入收藏
一文了解什么是微信小程序
如果您无需下载和管理即可获得像原生 iOS 或 Android APP 一样流畅的体验会怎样?腾讯通过微信小程序实现了这一替代方案。一、什么是微信小程序?它们与原生应用程序和 H5 迷你...【详细内容】
2023-12-26  小文智能    Tags:微信小程序   点击:(94)  评论:(0)  加入收藏
小程序开发需要多少钱?小程序开发的真实成本:报价案例、费用价格表与开发周期解析
分享一个上海客户的微信小程序定制开发的需求,销售课程与相关商品。项目分为后台管理系统和小程序前端,功能不是太复杂,周期大概1个月,费用3万。大家可能比较关心几个地方,比如一...【详细内容】
2023-12-11  久码小程序开发  今日头条  Tags:小程序   点击:(115)  评论:(0)  加入收藏
小程序技术分享:安全机制与运行机制
小程序凭借其高曝光率、开发成本低、运行更流畅等优势和特点,一经推出就被广泛使用,面对小程序的火爆,自然而然地,就有很多开发者转战小程序领域,本文主要带大家了解下小程序运行...【详细内容】
2023-12-07  前端实习生Findan    Tags:小程序   点击:(138)  评论:(0)  加入收藏
微信小程序的编译原理
2021年来,随着科技的进步,人们的生活水平也在不断提高。现在,微信小程序已经成为了现代人生活中不可或缺的一部分,它可以帮助我们更方便地查找信息,购物,预订机票和酒店,进行社交等...【详细内容】
2023-12-06  前端实习生Findan    Tags:小程序   点击:(128)  评论:(0)  加入收藏
模板小程序和订制开发小程序的区别?
相比外卖APP,外卖小程序是不用下载到手机的,所以对于用户来说更方便一点。简单方便的程序用户才更愿意使用。现在不少商家越来越重视外卖小程序开发,想通过外卖小程序冲进这片...【详细内容】
2023-11-24  重庆洺宸传媒    Tags:小程序   点击:(233)  评论:(0)  加入收藏
一分钟学会用宝塔面板搭建小程序
宝塔面板搭建小程序怎样用?想要使用宝塔面板搭建小程序?这里是实用教程,帮助您快速上手。在本教程中,我们将扼要了解宝塔面板的基础知识,并一步步演示怎么搭建一个小程序。第一步...【详细内容】
2023-11-15    网络  Tags:小程序   点击:(193)  评论:(0)  加入收藏
站内最新
站内热门
站内头条