diff --git a/types/weixin-app/index.d.ts b/types/weixin-app/index.d.ts
index 100a00bc48..c216cfa636 100644
--- a/types/weixin-app/index.d.ts
+++ b/types/weixin-app/index.d.ts
@@ -6,3042 +6,3198 @@
// TypeScript Version: 2.3
declare namespace wx {
- // #region 基本参数
- interface DataResponse {
- /** 回调函数返回的内容 */
- data: object | string | ArrayBuffer;
- /** 开发者服务器返回的 HTTP 状态码 */
- statusCode: number;
- /** 开发者服务器返回的 HTTP Response Header */
- header: object;
- }
- interface ErrMsgResponse {
- /** 成功:ok,错误:详细信息 */
- errMsg: 'ok' | string;
- }
- interface TempFileResponse {
- /** 文件的临时路径 */
- tempFilePath: string;
- }
- interface BaseOptions {
- /** 接口调用成功的回调函数 */
- success?(res: any): void;
- /** 接口调用失败的回调函数 */
- fail?(res: any): void;
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?(res: any): void;
- }
- // #endregion
- // #region 网络API列表
- // 发起请求
- interface RequestHeader {
- [key: string]: string;
- }
- interface RequestOptions extends BaseOptions {
- /** 开发者服务器接口地址 */
- url: string;
- /** 请求的参数 */
- data?: string | object | ArrayBuffer;
- /** 设置请求的 header , header 中不能设置 Referer */
- header?: RequestHeader;
- /** 默认为 GET,有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT */
- method?: "GET" | "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" | "CONNECT";
- /** 如果设为json,会尝试对返回的数据做一次 JSON.parse */
- dataType?: string;
- /**
- * 设置响应的数据类型。合法值:text、arraybuffer
- * @version 1.7.0
- */
- responseType?: string;
- /** 收到开发者服务成功返回的回调函数,res = {data: '开发者服务器返回的内容'} */
- success?(res: DataResponse): void;
- }
- /**
- * wx.request发起的是https请求。一个微信小程序,同时只能有5个网络请求连接。
- */
- function request(options: RequestOptions): RequestTask;
-
- /**
- * 返回一个 requestTask 对象,通过 requestTask,可中断请求任务。
- */
- interface RequestTask {
- abort(): void;
- }
-
- interface UploadTask {
- /**
- * 监听上传进度变化
- * @version 1.4.0
- */
- onProgressUpdate(callback?: (res: {
- /** 上传进度百分比 */
- progress: number;
- /** 已经上传的数据长度,单位 Bytes */
- totalBytesSent: number;
- /** 预期需要上传的数据总长度,单位 Bytes */
- totalBytesExpectedToSend: number;
- }) => void): void;
- /**
- * 中断下载任务
- * @version 1.4.0
- */
- abort(): void;
- }
- // 上传下载
- interface UploadFileOptions extends BaseOptions {
- /** 开发者服务器 url */
- url: string;
- /** 要上传文件资源的路径 */
- filePath: string;
- /** 文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容 */
- name: string;
- /** HTTP 请求 Header , header 中不能设置 Referer */
- header?: RequestHeader;
- /** HTTP 请求中其他额外的 form data */
- formData?: any;
- }
- /**
- * 将本地资源上传到开发者服务器。
- * 如页面通过 wx.chooseImage 等接口获取到一个本地资源的临时文件路径后,
- * 可通过此接口将本地资源上传到指定服务器。
- * 客户端发起一个 HTTPS POST 请求,
- * 其中 Content-Type 为 multipart/form-data 。
- */
- function uploadFile(options: UploadFileOptions): UploadTask;
- interface DownloadTask {
- /**
- * 监听下载进度变化
- * @version 1.4.0
- */
- onProgressUpdate(callback?: (res: {
- /** 下载进度百分比 */
- progress: number;
- /** 已经下载的数据长度,单位 Bytes */
- totalBytesWritten: number;
- /** 预期需要下载的数据总长度,单位 Bytes */
- totalBytesExpectedToWrite: number;
- }) => void): void;
- /**
- * 中断下载任务
- * @version 1.4.0
- */
- abort(): void;
- }
- interface DownloadFileOptions extends BaseOptions {
- /** 下载资源的 url */
- url: string;
- /** 下载资源的类型,用于客户端识别处理,有效值:image/audio/video */
- type?: string;
- /** HTTP 请求 Header */
- header?: RequestHeader;
- /** 下载成功后以 tempFilePath 的形式传给页面,res = {tempFilePath: '文件的临时路径'} */
- success?(res: TempFileResponse): void;
- }
- /**
- * 下载文件资源到本地。客户端直接发起一个 HTTP GET 请求,
- * 把下载到的资源根据 type 进行处理,并返回文件的本地临时路径。
- */
- function downloadFile(options: DownloadFileOptions): DownloadTask;
- // WebSocket
- interface ConnectSocketOptions extends BaseOptions {
- /** 开发者服务器接口地址,必须是 HTTPS 协议,且域名必须是后台配置的合法域名 */
- url: string;
- /** 请求的数据 */
- data?: any;
- /** HTTP Header , header 中不能设置 Referer */
- header?: RequestHeader;
- /** 默认是GET,有效值为: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT */
- method?: string;
- /**
- * 子协议数组
- * @version 1.4.0
- */
- protocols?: string[];
- }
- /**
- * 创建一个 WebSocket 连接;
- * 一个微信小程序同时只能有一个 WebSocket 连接,
- * 如果当前已存在一个 WebSocket 连接,
- * 会自动关闭该连接,并重新创建一个 WebSocket 连接。
- */
- function connectSocket(options: ConnectSocketOptions): void;
- /** 监听WebSocket连接打开事件。 */
- function onSocketOpen(callback: () => void): void;
- /** 监听WebSocket错误。 */
- function onSocketError(callback: (error: any) => void): void;
- interface SendSocketMessageOptions extends BaseOptions {
- /** 需要发送的内容 */
- data: string;
- }
- /**
- * 通过 WebSocket 连接发送数据,需要先 wx.connectSocket,
- * 并在 wx.onSocketOpen 回调之后才能发送。
- */
- function sendSocketMessage(options: SendSocketMessageOptions): void;
- /**
- * 监听WebSocket接受到服务器的消息事件。
- */
- function onSocketMessage(callback: (res: DataResponse) => void): void;
- /**
- * 关闭WebSocket连接。
- */
- function closeSocket(): void;
- /** 监听WebSocket关闭。 */
- function onSocketClose(callback: () => void): void;
- // #endregion
- // #region 媒体API列表
- // 媒体-----图片
- type ImageSizeType = 'original' | 'compressed';
- type ImageSourceType = 'album' | 'camera';
- type VideoSourceType = 'album' | 'camera';
- type CameraDevice = 'front' | 'back';
- interface TempFile {
- /** 本地文件路径 */
- path: string;
- /** 本地文件大小,单位:B */
- size: number;
- }
- interface TempFilesData {
- /** 文件的临时路径 */
- tempFilePaths: string;
- /**
- * 图片的本地文件列表,每一项是一个 File 对象
- * @version 1.2.0
- */
- tempFiles: TempFile[];
- }
- interface ChooseImageOptions extends BaseOptions {
- /** 最多可以选择的图片张数,默认9 */
- count?: number;
- /** original 原图,compressed 压缩图,默认二者都有 */
- sizeType?: ImageSizeType[];
- /** album 从相册选图,camera 使用相机,默认二者都有 */
- sourceType?: ImageSourceType[];
- /** 成功则返回图片的本地文件路径列表 tempFilePaths */
- success(res: TempFilesData): void;
- }
- /**
- * 从本地相册选择图片或使用相机拍照。
- */
- function chooseImage(options: ChooseImageOptions): void;
- interface PreviewImageOptions extends BaseOptions {
- /** 当前显示图片的链接,不填则默认为 urls 的第一张 */
- current?: string;
- /** 需要预览的图片链接列表 */
- urls: string[];
- }
- /**
- * 预览图片。
- */
- function previewImage(options: PreviewImageOptions): void;
- interface GetImageInfoOptions extends BaseOptions {
- /**
- * 图片的路径,可以是相对路径,临时文件路径,存储文件路径,网络图片路径
- */
- src: string;
- }
- /**
- * 获取图片信息
- */
- function getImageInfo(options: GetImageInfoOptions): void;
- interface SaveImageToPhotosAlbumOptions extends BaseOptions {
- /**
- * 图片的路径,可以是相对路径,临时文件路径,存储文件路径,网络图片路径
- */
- filePath: string;
- success(res: {
- errMsg: string
- }): void;
- }
- /**
- * 保存图片到系统相册。
- * 需要用户授权 scope.writePhotosAlbum
- * @version 1.2.0
- */
- function saveImageToPhotosAlbum(options: SaveImageToPhotosAlbumOptions): void;
- // 媒体-----录音
- interface StartRecordOptions extends BaseOptions {
- /** 录音成功后调用,返回录音文件的临时文件路径,res = {tempFilePath: '录音文件的临时路径'} */
- success?(res: TempFileResponse): void;
- }
- /**
- * 开始录音。当主动调用wx.stopRecord,
- * 或者录音超过1分钟时自动结束录音,返回录音文件的临时文件路径。
- * 注:文件的临时路径,在小程序本次启动期间可以正常使用,
- * 如需持久保存,需在主动调用wx.saveFile,在小程序下次启动时才能访问得到。
- * @deprecated 1.6.0
- */
- function startRecord(options: StartRecordOptions): void;
- interface StopRecordOptions extends BaseOptions {
- success?(): void;
- }
- /**
- * 主动调用停止录音。
- */
- function stopRecord(options?: StopRecordOptions): void;
- type EncodeBitRate = 8000 | 11025 | 12000 | 16000 | 22050 | 24000 | 32000 | 44100 | 48000;
- interface RecorderManagerStartOptions {
- /**
- * 指定录音的时长,单位 ms
- * 如果传入了合法的 duration
- * 在到达指定的 duration 后会自动停止录音,最大值 600000(10 分钟),默认值 60000(1 分钟)
- */
- duration?: number;
- /**
- * 采样率,有效值 8000/16000/44100
- */
- sampleRate?: number;
- /**
- * 否 录音通道数,有效值 1/2
- */
- numberOfChannels?: number;
- /**
- * 编码码率
- * 采样率和码率有一定要求,具体有效值如下:
- * 采样率 编码码率
- * + 8000 16000 ~ 48000
- * + 11025 16000 ~ 48000
- * + 12000 24000 ~ 64000
- * + 16000 24000 ~ 96000
- * + 22050 32000 ~ 128000
- * + 24000 32000 ~ 128000
- * + 32000 48000 ~ 192000
- * + 44100 64000 ~ 320000
- * + 48000 64000 ~ 320000
- */
- encodeBitRate: number;
- /** 音频格式,有效值 aac/mp3 */
- format: string;
- /**
- * 指定帧大小,单位 KB
- * 传入 frameSize 后,每录制指定帧大小的内容后
- * 会回调录制的文件内容,不指定则不会回调。暂仅支持 mp3 格式。
- */
- frameSize: number;
- }
- interface OnRecorderManagerStopOptions {
- tempFilePath: string;
- }
- interface OnFrameRecordedOptions {
- /** 录音分片结果数据 */
- frameBuffer: ArrayBuffer;
- /** 当前帧是否正常录音结束前的最后一帧 */
- isLastFrame: boolean;
- }
- interface RecorderManager {
- /** 开始录音 */
- start(options?: RecorderManagerStartOptions): void;
- /** 暂停录音 */
- pause(): void;
- /** 继续录音 */
- resume(): void;
- /** 停止录音 */
- stop(): void;
- /** 录音开始事件 */
- onStart(callback?: () => void): void;
- /** 录音暂停事件 */
- onPause(callback?: () => void): void;
- /** 录音恢复事件 */
- onResume(callback?: () => void): void;
- /** 录音停止事件,会回调文件地址 */
- onStop(callback?: (options: OnRecorderManagerStopOptions) => void): void;
- /** 已录制完指定帧大小的文件,会回调录音分片结果数据。如果设置了 frameSize ,则会回调此事件 */
- onFrameRecorded(callback?: (options: OnFrameRecordedOptions) => void): void;
- /** 录音错误事件, 会回调错误信息 */
- onError(callback?: (err: ErrMsgResponse) => void): void;
- }
- /**
- * 获取全局唯一的录音管理器 recorderManager
- * @version 1.6.0
- */
- function getRecorderManager(): RecorderManager;
- // 媒体-----音频播放控制
- interface PlayVoiceOptions extends BaseOptions {
- /** 需要播放的语音文件的文件路径 */
- filePath: string;
- }
- /**
- * 开始播放语音,同时只允许一个语音文件正在播放,
- * 如果前一个语音文件还没播放完,将中断前一个语音播放。
- * @deprecated 1.6.0
- */
- function playVoice(options: PlayVoiceOptions): void;
- /**
- * 暂停正在播放的语音。
- * 再次调用wx.playVoice播放同一个文件时,会从暂停处开始播放。
- * 如果想从头开始播放,需要先调用 wx.stopVoice。
- * @deprecated 1.6.0
- */
- function pauseVoice(): void;
- /**
- * 结束播放语音。
- * @deprecated 1.6.0
- */
- function stopVoice(): void;
- // 媒体-----音乐播放控制
- interface BackgroundAudioPlayerState {
- /** 选定音频的长度(单位:s),只有在当前有音乐播放时返回 */
- duration: number;
- /** 选定音频的播放位置(单位:s),只有在当前有音乐播放时返回 */
- currentPosition: number;
- /** 播放状态(2:没有音乐在播放,1:播放中,0:暂停中) */
- status: number;
- /** 音频的下载进度(整数,80 代表 80%),只有在当前有音乐播放时返回 */
- downloadPercent: number;
- /** 歌曲数据链接,只有在当前有音乐播放时返回 */
- dataUrl: string;
- }
- interface GetBackgroundAudioPlayerStateOptions extends BaseOptions {
- /** 接口调用成功的回调函数 */
- success?(state: BackgroundAudioPlayerState): void;
- /** 接口调用失败的回调函数 */
- fail?(): void;
- /** 接口调用结束的回调函数(调用成功、失败都会执行) */
- complete?(): void;
- }
- /**
- * 获取音乐播放状态。
- * @deprecated 1.2.0
- */
- function getBackgroundAudioPlayerState(options: GetBackgroundAudioPlayerStateOptions): void;
- interface PlayBackgroundAudioOptions extends BaseOptions {
- /** 音乐链接 */
- dataUrl: string;
- /** 音乐标题 */
- title?: string;
- /** 封面URL */
- coverImgUrl?: string;
- }
- /**
- * 播放音乐,同时只能有一首音乐正在播放。
- * @deprecated 1.2.0
- */
- function playBackgroundAudio(options: PlayBackgroundAudioOptions): void;
- /**
- * 暂停播放音乐。
- * @deprecated 1.2.0
- */
- function pauseBackgroundAudio(options?: PlayBackgroundAudioOptions): void;
- interface SeekBackgroundAudioOptions extends BaseOptions {
- /** 音乐位置,单位:秒 */
- position: number;
- }
- /**
- * 控制音乐播放进度。
- * @deprecated 1.2.0
- */
- function seekBackgroundAudio(options: SeekBackgroundAudioOptions): void;
- /**
- * 停止播放音乐。
- * @deprecated 1.2.0
- */
- function stopBackgroundAudio(options?: PlayBackgroundAudioOptions): void;
- /**
- * 监听音乐播放。
- * @deprecated 1.2.0
- */
- function onBackgroundAudioPlay(callback: () => void): void;
- /**
- * 监听音乐暂停。
- * @deprecated 1.2.0
- */
- function onBackgroundAudioPause(callback: () => void): void;
- /**
- * 监听音乐停止。
- * @deprecated 1.2.0
- */
- function onBackgroundAudioStop(callback: () => void): void;
- interface BackgroundAudioManager {
- /** 当前音频的长度(单位:s),只有在当前有合法的 src 时返回 */
- readonly duration: number;
- /** 当前音频的播放位置(单位:s),只有在当前有合法的 src 时返回 */
- readonly currentTime: number;
- /** 当前是是否暂停或停止状态,true 表示暂停或停止,false 表示正在播放 */
- readonly paused: boolean;
- /** 音频的数据源,默认为空字符串,当设置了新的 src 时,会自动开始播放 ,目前支持的格式有 m4a, aac, mp3, wav */
- src: string;
- /** 音频开始播放的位置(单位:s) */
- startTime: number;
- /** 音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲。 是 */
- buffered: number;
- /** 音频标题,用于做原生音频播放器音频标题。原生音频播放器中的分享功能,分享出去的卡片标题,也将使用该值。 */
- title: string;
- /** 专辑名,原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值 */
- epname: string;
- /** 歌手名,原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值 */
- singer: string;
- /** 封面图url,用于做原生音频播放器背景图。原生音频播放器中的分享功能,分享出去的卡片配图及背景也将使用该图。 */
- coverImgUrl: string;
- /** 页面链接,原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值 */
- webUrl: string;
- /** 播放 */
- play(): void;
- /** 暂停 */
- pause(): void;
- /** 停止 */
- stop(): void;
- /** 跳转到指定位置,单位 s */
- seek(position: number): void;
- /** 背景音频进入可以播放状态,但不保证后面可以流畅播放 */
- onCanplay(callback?: () => void): void;
- /** 背景音频播放事件 */
- onPlay(callback?: () => void): void;
- /** 背景音频暂停事件 */
- onPause(callback?: () => void): void;
- /** 背景音频停止事件 */
- onStop(callback?: () => void): void;
- /** 背景音频自然播放结束事件 */
- onEnded(callback?: () => void): void;
- /** 背景音频播放进度更新事件 */
- onTimeUpdate(callback?: () => void): void;
- /** 用户在系统音乐播放面板点击上一曲事件(iOS only) */
- onPrev(callback?: () => void): void;
- /** 用户在系统音乐播放面板点击下一曲事件(iOS only) */
- onNext(callback?: () => void): void;
- /** 背景音频播放错误事件 */
- onError(callback?: () => void): void;
- /** 音频加载中事件,当音频因为数据不足,需要停下来加载时会触发 */
- onWaiting(callback?: () => void): void;
- }
- /**
- * 获取全局唯一的背景音频管理器 backgroundAudioManager。
- * @version 1.2.0
- */
- function getBackgroundAudioManager(): BackgroundAudioManager;
- // 媒体-----音频组件控制
- /**
- * audioContext 通过 audioId 跟一个 组件绑定,通过它可以操作对应的 组件。
- */
- interface AudioContext {
- /**
- * 音频的地址
- */
- setSrc(src: string): void;
- /**
- * 播放
- */
- play(): void;
- /**
- * 暂停
- */
- pause(): void;
- /**
- * 跳转到指定位置,单位 s
- */
- seek(position: number): void;
- }
- /**
- * 创建并返回 audio 上下文 audioContext 对象
- * @param audioId audio标签id
- * @example
- *
- *
- *
- *
- *
- *
- * // audio.js
- * Page({
- * onReady: function (e) {
- * // 使用 wx.createAudioContext 获取 audio 上下文 context
- * this.audioCtx = wx.createAudioContext('myAudio')
- * this.audioCtx.setSrc('http://ws.stream.qqmusic.qq.com/
- * M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&
- * uin=346897220&vkey=6292F51E1E384E06DCBDC9AB7C49FD713D632D313AC4858BACB8DDD29067D3C601481D36E62053BF8DFEAF74C0A5CCFADD6471160CAF3E6A&
- * fromtag=46')
- * this.audioCtx.play()
- * },
- * data: {
- * src: ''
- * },
- * audioPlay: function () {
- * this.audioCtx.play()
- * },
- * audioPause: function () {
- * this.audioCtx.pause()
- * },
- * audio14: function () {
- * this.audioCtx.seek(14)
- * },
- * audioStart: function () {
- * this.audioCtx.seek(0)
- * }
- * })
- * @deprecated 1.6.0
- */
- function createAudioContext(audioId: string, instance: any): AudioContext;
- interface InnerAudioContext {
- /** 当前音频的长度(单位:s),只有在当前有合法的 src 时返 */
- readonly duration: number;
- /** 当前音频的播放位置(单位:s),只有在当前有合法的 src 时返回,时间不取整,保留小数点后 6 */
- readonly currentTime: number;
- /** 当前是是否暂停或停止状态,true 表示暂停或停止,false 表示正在播 */
- readonly paused: boolean;
- /** 音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲 */
- readonly buffered: number;
- /** 音频的数据链接,用于直接播放。 */
- src: string;
- /** 开始播放的位置(单位:s),默认 0 */
- startTime: number;
- /** 是否自动开始播放,默认 false */
- autoplay: boolean;
- /** 是否循环播放,默认 false */
- loop: boolean;
- /** 是否遵循系统静音开关,当此参数为 false 时,即使用户打开了静音开关,也能继续发出声音,默认值 true */
- obeyMuteSwitch: boolean;
- /** 播放 */
- play(): void;
- /** 暂停 */
- pause(): void;
- /** 停止 */
- stop(): void;
- /** 跳转到指定位置,单位 s */
- seek(position: number): void;
- /** 销毁当前实例 */
- destroy(): void;
- /** 音频进入可以播放状态,但不保证后面可以流畅播放 */
- onCanplay(callback?: () => void): void;
- /** 音频播放事件 */
- onPlay(callback?: () => void): void;
- /** 音频暂停事件 */
- onPause(callback?: () => void): void;
- /** 音频停止事件 */
- onStop(callback?: () => void): void;
- /** 音频自然播放结束事件 */
- onEnded(callback?: () => void): void;
- /** 音频播放进度更新事件 */
- onTimeUpdate(callback?: () => void): void;
- /** 音频播放错误事件 */
- onError(callback?: () => void): void;
- /** 音频加载中事件,当音频因为数据不足,需要停下来加载时会触发 */
- onWaiting(callback?: () => void): void;
- /** 音频进行 seek 操作事件 */
- onSeeking(callback?: () => void): void;
- /** 音频完成 seek 操作事件 */
- onSeeked(callback?: () => void): void;
- }
- /**
- * 创建并返回内部 audio 上下文 innerAudioContext 对象。
- * 本接口是 wx.createAudioContext 升级版。
- * @version 1.6.0
- */
- function createInnerAudioContext(): InnerAudioContext;
- // 媒体-----视频
- interface ChooseVideoOptions extends BaseOptions {
- /** album 从相册选视频,camera 使用相机拍摄,默认为:['album', 'camera'] */
- sourceType?: VideoSourceType[];
- /** 拍摄视频最长拍摄时间,单位秒。最长支持60秒 */
- maxDuration?: number;
- /** 前置或者后置摄像头,默认为前后都有,即:['front', 'back'] */
- camera?: CameraDevice[];
- /** 接口调用成功,返回视频文件的临时文件路径,详见返回参数说明 */
- success?(res: VideoData): void;
- }
- /**
- * 拍摄视频或从手机相册中选视频,返回视频的临时文件路径。
- */
- function chooseVideo(options: ChooseVideoOptions): void;
- // 媒体-----视频组件控制
- interface VideoContext {
- /**
- * 播放
- */
- play(): void;
- /**
- * 暂停
- */
- pause(): void;
- /**
- * 跳转到指定位置,单位 s
- */
- seek(position: number): void;
- /**
- * 发送弹幕,danmu 包含两个属性 text, color。
- */
- sendDanmu(danmu: {
- text: string;
- color: number | string;
- }): void;
- }
- interface VideoData {
- /** 选定视频的临时文件路径 */
- tempFilePath: string;
- /** 选定视频的时间长度 */
- duration: number;
- /** 选定视频的数据量大小 */
- size: number;
- /** 返回选定视频的长 */
- height: number;
- /** 返回选定视频的宽 */
- width: number;
- }
- /**
- * 创建并返回 video 上下文 videoContext 对象
- * @param videoId video标签id
- */
- function createVideoContext(videoId: string): VideoContext;
- interface TakePhotoOptions extends BaseOptions {
- /** 成像质量,值为high, normal, low,默认normal */
- quality?: string;
- success?(res: { tempImagePath: string }): void;
- }
- interface StartRecordOptions extends BaseOptions {
- /** 超过30s或页面onHide时会结束录像 */
- timeoutCallback?(res: { tempThumbPath: string, tempVideoPath: string }): void;
- }
- interface StopRecordOptions extends BaseOptions {
- success?(res: { tempThumbPath: string, tempVideoPath: string }): void;
- }
- interface CameraContext {
- /** 拍照,可指定质量,成功则返回图片 */
- takePhoto(options: TakePhotoOptions): void;
- /** 开始录像 */
- startRecord(options: StartRecordOptions): void;
- /** 结束录像,成功则返回封面与视频 */
- stopRecord(options: StopRecordOptions): void;
- }
- /**
- * 创建并返回 camera 上下文 cameraContext 对象
- * cameraContext 与页面的 camera 组件绑定
- * 一个页面只能有一个camera,通过它可以操作对应的 组件。
- * 在自定义组件下,第一个参数传入组件实例this,以操作组件内 组件
- * @version 1.6.0
- */
- function createCameraContext(instance: any): CameraContext;
- interface RequestFullScreenOptions extends BaseOptions {
- /** 有效值为 0(正常竖向), 90(屏幕逆时针90度), -90(屏幕顺时针90度) */
- direction: number;
- }
- interface LivePlayerContext {
- /** 播放 */
- play(options: BaseOptions): void;
- /** 停止 */
- stop(options: BaseOptions): void;
- /** 静音 */
- mute(options: BaseOptions): void;
- /** 进入全屏 */
- requestFullScreen(options: RequestFullScreenOptions): void;
- /** 退出全屏 */
- exitFullScreen(options: BaseOptions): void;
- }
- /**
- * 操作对应的 组件。
- * 创建并返回 live-player 上下文 LivePlayerContext 对象。
- * 在自定义组件下,第二个参数传入组件实例this,以操作组件内 组件
- * @version 1.7.0
- */
- function createLivePlayerContext(id: string, instance: any): LivePlayerContext;
- // 文件
- interface SavedFileData {
- /** 文件的保存路径 */
- savedFilePath: string;
- }
- interface SaveFileOptions extends BaseOptions {
- /** 需要保存的文件的临时路径 */
- tempFilePath: string;
- /** 返回文件的保存路径,res = {savedFilePath: '文件的保存路径'} */
- success?(res: SavedFileData): void;
- }
- /**
- * 保存文件到本地。
- * 本地文件存储的大小限制为 10M
- */
- function saveFile(options: SaveFileOptions): void;
- interface File {
- /**
- * 文件的本地路径
- */
- filePath: string;
- /**
- * 文件的保存时的时间戳,从1970/01/01 08:00:00 到当前时间的秒数
- */
- createTime: number;
- /**
- * 文件大小,单位B
- */
- size: number;
- }
- interface GetFileInfoOptions extends BaseOptions {
- /** 本地文件路径 */
- filePath: string;
- /** 计算文件摘要的算法,默认值 md5,有效值:md5,sha1 */
- digestAlgorithm?: string;
- success?(options: GetFileInfoSuccess): void;
- }
- interface GetFileInfoSuccess {
- /** 文件大小,单位:B */
- size: number;
- /** 按照传入的 digestAlgorithm 计算得出的的文件摘要 */
- digest: string;
- /** 调用结果 */
- errMsg: string;
- }
- /**
- * 获取文件信息
- * @version 1.4.0
- */
- function getFileInfo(options: GetFileInfoOptions): void;
- interface GetSavedFileListData {
- /**
- * 接口调用结果
- */
- errMsg: string;
- /**
- * 文件列表
- */
- fileList: File[];
- }
- interface GetSavedFileListOptions extends BaseOptions {
- /** 接口调用成功的回调函数 */
- success?(res: GetSavedFileListData): void;
- }
- /**
- * 获取本地已保存的文件列表
- */
- function getSavedFileList(options: GetSavedFileListOptions): void;
- interface SavedFileInfoData {
- /**
- * 接口调用结果
- */
- errMsg: string;
- /**
- * 文件大小,单位B
- */
- size: number;
- /**
- * 文件的保存是的时间戳,从1970/01/01 08:00:00 到当前时间的秒数
- */
- createTime: number;
- }
- interface GetSavedFileInfoOptions extends BaseOptions {
- filePath: string;
- /** 接口调用成功的回调函数 */
- success?(res: SavedFileInfoData): void;
- }
- /**
- * 获取本地文件的文件信息
- */
- function getSavedFileInfo(options: GetSavedFileInfoOptions): void;
- type RemoveSavedFileOptions = BaseOptions;
- /**
- * 删除本地存储的文件
- */
- function removeSavedFile(options: RemoveSavedFileOptions): void;
- interface OpenDocumentOptions extends BaseOptions {
- /**
- * 文件路径,可通过 downFile 获得
- */
- filePath: string;
- }
- /**
- * 新开页面打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx
- */
- function openDocument(options: OpenDocumentOptions): void;
- // 数据缓存
- interface SetStorageOptions extends BaseOptions {
- /** 本地缓存中的指定的 key */
- key: string;
- /** 需要存储的内容 */
- data: any | string;
- }
- /**
- * 将数据存储在本地缓存中指定的 key 中,
- * 会覆盖掉原来该 key 对应的内容,这是一个异步接口。
- */
- function setStorage(options: SetStorageOptions): void;
- /**
- * 将 data 存储在本地缓存中指定的 key 中,
- * 会覆盖掉原来该 key 对应的内容,这是一个同步接口。
- *
- * @param key 本地缓存中的指定的 key
- * @param data 需要存储的内容
- */
- function setStorageSync(key: string, data: any | string): void;
- interface GetStorageOptions extends BaseOptions {
- /** 本地缓存中的指定的 key */
- key: string;
- /** 接口调用的回调函数,res = {data: key对应的内容} */
- success(res: DataResponse): void;
- }
- /**
- * 从本地缓存中异步获取指定 key 对应的内容。
- */
- function getStorage(options: GetStorageOptions): void;
- /**
- * 从本地缓存中同步获取指定 key 对应的内容。
- *
- */
- function getStorageSync(key: string): any | string;
- interface StorageInfo {
- /**
- * 当前storage中所有的key
- */
- keys: string[];
- /**
- * 当前占用的空间大小, 单位kb
- */
- currentSize: number;
- /**
- * 限制的空间大小,单位kb
- */
- limitSize: number;
- }
- interface GetStorageInfoOptions extends BaseOptions {
- success(res: StorageInfo): void;
- }
- /**
- * 异步获取当前storage的相关信息
- */
- function getStorageInfo(options: GetStorageInfoOptions): void;
- function getStorageInfoSync(): GetStorageInfoOptions;
- interface RemoveStorageOptions extends BaseOptions {
- key: string;
- success?(res: DataResponse): void;
- }
- function removeStorage(options: RemoveStorageOptions): void;
- function removeStorageSync(key: string): DataResponse;
- /**
- * 清理本地数据缓存。
- */
- function clearStorage(): void;
- /**
- * 同步清理本地数据缓存
- */
- function clearStorageSync(): void;
- // #endregion
- // #region 位置API列表
- // 位置-----获取位置
- interface LocationData {
- /** 纬度,浮点数,范围为-90~90,负数表示南纬 */
- latitude: number;
- /** 经度,浮点数,范围为-180~180,负数表示西经 */
- longitude: number;
- /** 速度,浮点数,单位m/s */
- speed: number;
- /** 位置的精确度 */
- accuracy: number;
- }
- interface GetLocationOptions extends BaseOptions {
- /** 默认为 wgs84 返回 gps 坐标,gcj02 返回可用于wx.openLocation的坐标 */
- type?: 'wgs84' | 'gcj02';
- /** 接口调用成功的回调函数,返回内容详见返回参数说明。 */
- success(res: LocationData): void;
- }
- /**
- * 获取当前的地理位置、速度。
- */
- function getLocation(options: GetLocationOptions): void;
- interface ChooseLocationData {
- /**
- * 位置名称
- */
- name: string;
- /**
- * 详细地址
- */
- address: string;
- /**
- * 纬度,浮点数,范围为-90~90,负数表示南纬
- */
- latitude: number;
- /**
- * 经度,浮点数,范围为-180~180,负数表示西经
- */
- longitude: number;
- }
- interface ChooseLocationOptions extends BaseOptions {
- success(res: ChooseLocationData): void;
- }
- /**
- * 打开地图选择位置
- */
- function chooseLocation(options: ChooseLocationOptions): void;
- // 位置-----查看位置
- interface OpenLocationOptions extends BaseOptions {
- /** 纬度,范围为-90~90,负数表示南纬 */
- latitude: number;
- /** 经度,范围为-180~180,负数表示西经 */
- longitude: number;
- /** 缩放比例,范围1~28,默认为28 */
- scale?: number;
- /** 位置名 */
- name?: string;
- /** 地址的详细说明 */
- address?: string;
- }
- /**
- * 使用微信内置地图查看位置
- */
- function openLocation(options: OpenLocationOptions): void;
- // 位置-----地图组件控制
- interface GetCenterLocationOptions extends BaseOptions {
- success(res: {
- longitude: number;
- latitude: number;
- }): void;
- }
- /**
- * mapContext 通过 mapId 跟一个 组件绑定,通过它可以操作对应的 组件。
- */
- interface MapContext {
- /**
- * 获取当前地图中心的经纬度,返回的是 gcj02 坐标系,可以用于 wx.openLocation
- */
- getCenterLocation(options: GetCenterLocationOptions): OpenLocationOptions;
- /**
- * 将地图中心移动到当前定位点,需要配合map组件的show-location使用
- */
- moveToLocation(): void;
- }
- /**
- * 创建并返回 map 上下文 mapContext 对象
- */
- function createMapContext(mapId: string): MapContext;
- // #endregion
- // #region 设备API列表
- // 设备-----系统信息
- interface SystemInfo {
- /** 手机型号 */
- model: string;
- /** 设备像素比 */
- pixelRatio: number;
- /** 窗口宽度 */
- windowWidth: number;
- /** 窗口高度 */
- windowHeight: number;
- /** 微信设置的语言 */
- language: string;
- /** 微信版本号 */
- version: string;
- }
- interface GetSystemInfoOptions extends BaseOptions {
- /** 成功获取系统信息的回调 */
- success(res: SystemInfo): void;
- }
- /**
- * 获取系统信息。
- */
- function getSystemInfo(options: GetSystemInfoOptions): void;
- function getSystemInfoSync(): SystemInfo;
- /**
- * 判断小程序的API,回调,参数,组件等是否在当前版本可用。
- * String参数说明:
- * 使用 ${API}.${method}.${param}.${options}
- * 或者 ${component}.${attribute}.${option}方式来调用
- * 例如:
- * ${API} 代表 API 名字
- * ${method} 代表调用方式,有效值为return, success, object, callback
- * ${param} 代表参数或者返回值
- * ${options} 代表参数的可选值
- * ${component} 代表组件名字
- * ${attribute} 代表组件属性
- * ${option} 代表组件属性的可选值
- */
- function canIUse(api: string): boolean;
- // 设备-----网络状态
- type networkType = '2g' | '3g' | '4g' | 'wifi' | 'unknown' | 'none';
- interface NetworkTypeData {
- /** 返回网络类型2g,3g,4g,wifi */
- networkType: networkType;
- }
- interface GetNetworkTypeOptions extends BaseOptions {
- /** 接口调用成功,返回网络类型 networkType */
- success(res: NetworkTypeData): void;
- }
- /**
- * 获取网络类型。
- */
- function getNetworkType(options: GetNetworkTypeOptions): void;
- /**
- * 监听网络状态变化。
- * 微信客户端 6.5.6 版本开始支持
- * @version 1.1.0
- */
- function onNetworkStatusChange(callback: (res: {
- isConnected: boolean;
- networkType: networkType;
- }) => void): void;
- // 设备-----加速度计
- interface AccelerometerData {
- /** X 轴 */
- x: number;
- /** Y 轴 */
- y: number;
- /** Z 轴 */
- z: number;
- }
- type AccelerometerChangeCallback = (res: AccelerometerData) => void;
- /**
- * 监听重力感应数据,频率:5次/秒
- */
- function onAccelerometerChange(callback: AccelerometerChangeCallback): void;
- type AccelerometerOptions = BaseOptions;
- /**
- * 开始监听加速度数据。
- * 微信客户端 6.5.6 版本开始支持
- * @version 1.1.0
- */
- function startAccelerometer(options: AccelerometerOptions): void;
- /**
- * 停止监听加速度数据。
- * 微信客户端 6.5.6 版本开始支持
- * @version 1.1.0
- */
- function stopAccelerometer(options: AccelerometerOptions): void;
- // 设备-----罗盘
- interface CompassData {
- /** 面对的方向度数 */
- direction: number;
- }
- type CompassChangeCallback = (res: CompassData) => void;
- /**
- * 监听罗盘数据,频率:5次/秒,接口调用后会自动开始监听,可使用wx.stopCompass停止监听。
- */
- function onCompassChange(callback: CompassChangeCallback): void;
- type CompassOptions = BaseOptions;
- /**
- * 开始监听罗盘数据。
- * 微信客户端 6.5.6 版本开始支持
- * @version 1.1.0
- */
- function startCompass(options: CompassOptions): void;
- function stopCompass(options: CompassOptions): void;
- // 设备-----拨打电话
- interface MakePhoneCallOptions extends BaseOptions {
- /**
- * 需要拨打的电话号码
- */
- phoneNumber: string;
- }
- /**
- * 拨打电话
- */
- function makePhoneCall(options: MakePhoneCallOptions): void;
- // 设备-----扫码
- type scanType = "qrCode" | "barCode";
- interface ScanCodeData {
- /**
- * 所扫码的内容
- */
- result: string;
- /**
- * 所扫码的类型
- */
- scanType: scanType;
- /**
- * 所扫码的字符集
- */
- charSet: string;
- /**
- * 当所扫的码为当前小程序的合法二维码时,会返回此字段,内容为二维码携带的 path
- */
- path: string;
- }
- interface ScanCodeOptions extends BaseOptions {
- /**
- * 是否只能从相机扫码,不允许从相册选择图片
- * @version 1.2.0
- */
- onlyFromCamera?: boolean;
- /**
- * 扫码类型,参数类型是数组
- * 二维码是'qrCode',一维码是'barCode',DataMatrix是‘datamatrix’,pdf417是‘pdf417’。
- * @version 1.7.0
- */
- scanType?: string[];
- success(res: ScanCodeData): void;
- }
- /**
- * 调起客户端扫码界面,扫码成功后返回对应的结果
- */
- function scanCode(options: ScanCodeOptions): void;
- // 设备-----剪贴板
- interface ClipboardDataOptions extends BaseOptions {
- data: string;
- success?(res: DataResponse): void;
- }
- /**
- * 设置系统剪贴板的内容
- * 微信客户端 6.5.6 版本开始支持
- * @version 1.1.0
- */
- function setClipboardData(options: ClipboardDataOptions): void;
- /**
- * 获取系统剪贴板内容
- * 微信客户端 6.5.6 版本开始支持
- * @version 1.1.0
- */
- function getClipboardData(options: ClipboardDataOptions): void;
- // 设备-----蓝牙
- interface OpenBluetoothAdapterOptions extends BaseOptions {
- success(res: any): void;
- }
- /**
- * 初始化蓝牙适配器
- * @version 1.1.0
- */
- function openBluetoothAdapter(options: OpenBluetoothAdapterOptions): void;
- interface CloseBluetoothAdapterOptions extends BaseOptions {
- success(res: any): void;
- }
- /**
- * 关闭蓝牙模块。调用该方法将断开所有已建立的链接并释放系统资源
- * @version 1.1.0
- */
- function closeBluetoothAdapter(options: CloseBluetoothAdapterOptions): void;
- interface BluetoothAdapterState {
- /**
- * 蓝牙适配器是否可用
- */
- available: boolean;
- /**
- * 蓝牙适配器是否处于搜索状态
- */
- discovering: boolean;
- }
- interface BluetoothAdapterStateData extends ErrMsgResponse {
- /**
- * 蓝牙适配器信息
- */
- adapterState: BluetoothAdapterState;
- }
- interface GetBluetoothAdapterStateOptions extends BaseOptions {
- success(res: BluetoothAdapterStateData): void;
- }
- /**
- * 获取本机蓝牙适配器状态
- * @version 1.1.0
- */
- function getBluetoothAdapterState(options: GetBluetoothAdapterStateOptions): void;
- /**
- * 监听蓝牙适配器状态变化事件
- * @version 1.1.0
- */
- function onBluetoothAdapterStateChange(callback: (res: BluetoothAdapterState) => void): void;
- interface StartBluetoothDevicesDiscoveryOptions extends BaseOptions {
- success(res: ErrMsgResponse): void;
- /**
- * 蓝牙设备主 service 的 uuid 列表
- * 某些蓝牙设备会广播自己的主 service 的 uuid。如果这里传入该数组,那么根据该 uuid 列表,只搜索有这个主服务的设备。
- */
- services?: string[];
- }
- /**
- * 开始搜寻附近的蓝牙外围设备。
- * 注意,该操作比较耗费系统资源,请在搜索并连接到设备后调用 stop 方法停止搜索。
- * @example
- * // 以微信硬件平台的蓝牙智能灯为例,主服务的 UUID 是 FEE7。传入这个参数,只搜索主服务 UUID 为 FEE7 的设备
- * wx.startBluetoothDevicesDiscovery({
- * services: ['FEE7'],
- * success: function (res) {
- * console.log(res)
- * }
- * });
- */
- function startBluetoothDevicesDiscovery(options: StartBluetoothDevicesDiscoveryOptions): void;
- interface StopBluetoothDevicesDiscoveryOptions extends BaseOptions {
- success(res: ErrMsgResponse): void;
- }
- /**
- * 停止搜寻附近的蓝牙外围设备。请在确保找到需要连接的设备后调用该方法停止搜索。
- * @version 1.1.0
- */
- function stopBluetoothDevicesDiscovery(options: StopBluetoothDevicesDiscoveryOptions): void;
- /**
- * 蓝牙设备信息
- */
- interface BluetoothDevice {
- /**
- * 蓝牙设备名称,某些设备可能没有
- */
- name: string;
- /**
- * 用于区分设备的 id
- */
- deviceId: string;
- /**
- * int 当前蓝牙设备的信号强度
- */
- RSSI: number;
- /**
- * 当前蓝牙设备的广播内容
- */
- advertisData: ArrayBuffer;
- }
- interface GetBluetoothDevicesOptions extends BaseOptions {
- success(res: {
- devices: BluetoothDevice[];
- } & ErrMsgResponse): void;
- }
- /**
- * 获取所有已发现的蓝牙设备,包括已经和本机处于连接状态的设备
- */
- function getBluetoothDevices(options: GetBluetoothDevicesOptions): void;
- /**
- * 监听寻找到新设备的事件
- * @version 1.1.0
- */
- function onBluetoothDeviceFound(callback: (res: {
- devices: BluetoothDevice[]
- }) => void): void;
- interface GetConnectedBluetoothDevicesOptions extends BaseOptions {
- services: string[];
- success(res: {
- devices: BluetoothDevice[]
- } & ErrMsgResponse): void;
- }
- /**
- * 根据 uuid 获取处于已连接状态的设备
- * @version 1.1.0
- */
- function getConnectedBluetoothDevices(options: GetConnectedBluetoothDevicesOptions): void;
- interface CreateBLEConnectionOptions extends BaseOptions {
- success(res: ErrMsgResponse): void;
- }
- /**
- * 低功耗蓝牙接口
- * @version 1.1.0
- */
- function createBLEConnection(options: CreateBLEConnectionOptions): void;
- interface CloseBLEConnectionOptions extends BaseOptions {
- /**
- * 蓝牙设备 id,参考 getDevices 接口
- */
- deviceId: string;
- success(res: ErrMsgResponse): void;
- }
- /**
- * 断开与低功耗蓝牙设备的连接
- * @version 1.1.0
- */
- function closeBLEConnection(options: CloseBLEConnectionOptions): void;
- interface GetBLEDeviceServicesOptions extends BaseOptions {
- /**
- * 蓝牙设备 id,参考 getDevices 接口
- */
- deviceId: string;
- /**
- * 成功则返回本机蓝牙适配器状态
- */
- success(res: {
- services: Array<{
- uuid: string;
- isPrimary: boolean;
- }>;
- } & ErrMsgResponse): void;
- }
- /**
- * 获取蓝牙设备所有 service(服务)
- */
- function getBLEDeviceServices(options: GetBLEDeviceServicesOptions): void;
- interface GetBLEDeviceCharacteristicsOptions extends BaseOptions {
- /**
- * 蓝牙设备 id,参考 device 对象
- */
- deviceId: string;
- /**
- * 蓝牙服务 uuid
- */
- serviceId: string;
- /**
- * 成功则返回本机蓝牙适配器状态
- */
- success(res: {
- characteristics: Array<{
- uuid: string;
- properties: Array<{
- /**
- * 该特征值是否支持 read 操作
- */
- read: boolean;
- /**
- * 该特征值是否支持 write 操作
- */
- write: boolean;
- /**
- * 该特征值是否支持 notify 操作
- */
- notify: boolean;
- /**
- * 该特征值是否支持 indicate 操作
- */
- indicate: boolean;
- }>;
- }>;
- } & ErrMsgResponse): void;
- }
- /**
- * 获取蓝牙设备所有 characteristic(特征值)
- */
- function getBLEDeviceCharacteristics(options: GetBLEDeviceCharacteristicsOptions): void;
- interface BLECharacteristicValueOptions extends BaseOptions {
- /**
- * 蓝牙设备 id,参考 device 对象
- */
- deviceId: string;
- /**
- * 蓝牙特征值对应服务的 uuid
- */
- serviceId: string;
- /**
- * 蓝牙特征值的 uuid
- */
- characteristicId: string;
- success(res: {
- characteristic: {
+ // #region 基本参数
+ interface DataResponse {
+ /** 回调函数返回的内容 */
+ data: object | string | ArrayBuffer;
+ /** 开发者服务器返回的 HTTP 状态码 */
+ statusCode: number;
+ /** 开发者服务器返回的 HTTP Response Header */
+ header: object;
+ }
+ interface ErrMsgResponse {
+ /** 成功:ok,错误:详细信息 */
+ errMsg: "ok" | string;
+ }
+ interface TempFileResponse {
+ /** 文件的临时路径 */
+ tempFilePath: string;
+ }
+ interface BaseOptions {
+ /** 接口调用成功的回调函数 */
+ success?(res: any): void;
+ /** 接口调用失败的回调函数 */
+ fail?(res: any): void;
+ /** 接口调用结束的回调函数(调用成功、失败都会执行) */
+ complete?(res: any): void;
+ }
+ // #endregion
+ // #region 网络API列表
+ // 发起请求
+ interface RequestHeader {
+ [key: string]: string;
+ }
+ interface RequestOptions extends BaseOptions {
+ /** 开发者服务器接口地址 */
+ url: string;
+ /** 请求的参数 */
+ data?: string | object | ArrayBuffer;
+ /** 设置请求的 header , header 中不能设置 Referer */
+ header?: RequestHeader;
+ /** 默认为 GET,有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT */
+ method?:
+ | "GET"
+ | "OPTIONS"
+ | "GET"
+ | "HEAD"
+ | "POST"
+ | "PUT"
+ | "DELETE"
+ | "TRACE"
+ | "CONNECT";
+ /** 如果设为json,会尝试对返回的数据做一次 JSON.parse */
+ dataType?: string;
/**
- * 蓝牙设备特征值的 uuid
+ * 设置响应的数据类型。合法值:text、arraybuffer
+ * @version 1.7.0
*/
- characteristicId: string;
+ responseType?: string;
+ /** 收到开发者服务成功返回的回调函数,res = {data: '开发者服务器返回的内容'} */
+ success?(res: DataResponse): void;
+ }
+ /**
+ * wx.request发起的是https请求。一个微信小程序,同时只能有5个网络请求连接。
+ */
+ function request(options: RequestOptions): RequestTask;
+
+ /**
+ * 返回一个 requestTask 对象,通过 requestTask,可中断请求任务。
+ */
+ interface RequestTask {
+ abort(): void;
+ }
+
+ interface UploadTask {
/**
- * 蓝牙设备特征值对应服务的 uuid
+ * 监听上传进度变化
+ * @version 1.4.0
+ */
+ onProgressUpdate(
+ callback?: (
+ res: {
+ /** 上传进度百分比 */
+ progress: number;
+ /** 已经上传的数据长度,单位 Bytes */
+ totalBytesSent: number;
+ /** 预期需要上传的数据总长度,单位 Bytes */
+ totalBytesExpectedToSend: number;
+ }
+ ) => void
+ ): void;
+ /**
+ * 中断下载任务
+ * @version 1.4.0
+ */
+ abort(): void;
+ }
+ // 上传下载
+ interface UploadFileOptions extends BaseOptions {
+ /** 开发者服务器 url */
+ url: string;
+ /** 要上传文件资源的路径 */
+ filePath: string;
+ /** 文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容 */
+ name: string;
+ /** HTTP 请求 Header , header 中不能设置 Referer */
+ header?: RequestHeader;
+ /** HTTP 请求中其他额外的 form data */
+ formData?: any;
+ }
+ /**
+ * 将本地资源上传到开发者服务器。
+ * 如页面通过 wx.chooseImage 等接口获取到一个本地资源的临时文件路径后,
+ * 可通过此接口将本地资源上传到指定服务器。
+ * 客户端发起一个 HTTPS POST 请求,
+ * 其中 Content-Type 为 multipart/form-data 。
+ */
+ function uploadFile(options: UploadFileOptions): UploadTask;
+ interface DownloadTask {
+ /**
+ * 监听下载进度变化
+ * @version 1.4.0
+ */
+ onProgressUpdate(
+ callback?: (
+ res: {
+ /** 下载进度百分比 */
+ progress: number;
+ /** 已经下载的数据长度,单位 Bytes */
+ totalBytesWritten: number;
+ /** 预期需要下载的数据总长度,单位 Bytes */
+ totalBytesExpectedToWrite: number;
+ }
+ ) => void
+ ): void;
+ /**
+ * 中断下载任务
+ * @version 1.4.0
+ */
+ abort(): void;
+ }
+ interface DownloadFileOptions extends BaseOptions {
+ /** 下载资源的 url */
+ url: string;
+ /** 下载资源的类型,用于客户端识别处理,有效值:image/audio/video */
+ type?: string;
+ /** HTTP 请求 Header */
+ header?: RequestHeader;
+ /** 下载成功后以 tempFilePath 的形式传给页面,res = {tempFilePath: '文件的临时路径'} */
+ success?(res: TempFileResponse): void;
+ }
+ /**
+ * 下载文件资源到本地。客户端直接发起一个 HTTP GET 请求,
+ * 把下载到的资源根据 type 进行处理,并返回文件的本地临时路径。
+ */
+ function downloadFile(options: DownloadFileOptions): DownloadTask;
+ // WebSocket
+ interface ConnectSocketOptions extends BaseOptions {
+ /** 开发者服务器接口地址,必须是 HTTPS 协议,且域名必须是后台配置的合法域名 */
+ url: string;
+ /** 请求的数据 */
+ data?: any;
+ /** HTTP Header , header 中不能设置 Referer */
+ header?: RequestHeader;
+ /** 默认是GET,有效值为: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT */
+ method?: string;
+ /**
+ * 子协议数组
+ * @version 1.4.0
+ */
+ protocols?: string[];
+ }
+ /**
+ * 创建一个 WebSocket 连接;
+ * 一个微信小程序同时只能有一个 WebSocket 连接,
+ * 如果当前已存在一个 WebSocket 连接,
+ * 会自动关闭该连接,并重新创建一个 WebSocket 连接。
+ */
+ function connectSocket(options: ConnectSocketOptions): void;
+ /** 监听WebSocket连接打开事件。 */
+ function onSocketOpen(callback: () => void): void;
+ /** 监听WebSocket错误。 */
+ function onSocketError(callback: (error: any) => void): void;
+ interface SendSocketMessageOptions extends BaseOptions {
+ /** 需要发送的内容 */
+ data: string;
+ }
+ /**
+ * 通过 WebSocket 连接发送数据,需要先 wx.connectSocket,
+ * 并在 wx.onSocketOpen 回调之后才能发送。
+ */
+ function sendSocketMessage(options: SendSocketMessageOptions): void;
+ /**
+ * 监听WebSocket接受到服务器的消息事件。
+ */
+ function onSocketMessage(callback: (res: DataResponse) => void): void;
+ /**
+ * 关闭WebSocket连接。
+ */
+ function closeSocket(): void;
+ /** 监听WebSocket关闭。 */
+ function onSocketClose(callback: () => void): void;
+ // #endregion
+ // #region 媒体API列表
+ // 媒体-----图片
+ type ImageSizeType = "original" | "compressed";
+ type ImageSourceType = "album" | "camera";
+ type VideoSourceType = "album" | "camera";
+ type CameraDevice = "front" | "back";
+ interface TempFile {
+ /** 本地文件路径 */
+ path: string;
+ /** 本地文件大小,单位:B */
+ size: number;
+ }
+ interface TempFilesData {
+ /** 文件的临时路径 */
+ tempFilePaths: string;
+ /**
+ * 图片的本地文件列表,每一项是一个 File 对象
+ * @version 1.2.0
+ */
+ tempFiles: TempFile[];
+ }
+ interface ChooseImageOptions extends BaseOptions {
+ /** 最多可以选择的图片张数,默认9 */
+ count?: number;
+ /** original 原图,compressed 压缩图,默认二者都有 */
+ sizeType?: ImageSizeType[];
+ /** album 从相册选图,camera 使用相机,默认二者都有 */
+ sourceType?: ImageSourceType[];
+ /** 成功则返回图片的本地文件路径列表 tempFilePaths */
+ success(res: TempFilesData): void;
+ }
+ /**
+ * 从本地相册选择图片或使用相机拍照。
+ */
+ function chooseImage(options: ChooseImageOptions): void;
+ interface PreviewImageOptions extends BaseOptions {
+ /** 当前显示图片的链接,不填则默认为 urls 的第一张 */
+ current?: string;
+ /** 需要预览的图片链接列表 */
+ urls: string[];
+ }
+ /**
+ * 预览图片。
+ */
+ function previewImage(options: PreviewImageOptions): void;
+ interface GetImageInfoOptions extends BaseOptions {
+ /**
+ * 图片的路径,可以是相对路径,临时文件路径,存储文件路径,网络图片路径
+ */
+ src: string;
+ }
+ /**
+ * 获取图片信息
+ */
+ function getImageInfo(options: GetImageInfoOptions): void;
+ interface SaveImageToPhotosAlbumOptions extends BaseOptions {
+ /**
+ * 图片的路径,可以是相对路径,临时文件路径,存储文件路径,网络图片路径
+ */
+ filePath: string;
+ success(res: { errMsg: string }): void;
+ }
+ /**
+ * 保存图片到系统相册。
+ * 需要用户授权 scope.writePhotosAlbum
+ * @version 1.2.0
+ */
+ function saveImageToPhotosAlbum(
+ options: SaveImageToPhotosAlbumOptions
+ ): void;
+ // 媒体-----录音
+ interface StartRecordOptions extends BaseOptions {
+ /** 录音成功后调用,返回录音文件的临时文件路径,res = {tempFilePath: '录音文件的临时路径'} */
+ success?(res: TempFileResponse): void;
+ }
+ /**
+ * 开始录音。当主动调用wx.stopRecord,
+ * 或者录音超过1分钟时自动结束录音,返回录音文件的临时文件路径。
+ * 注:文件的临时路径,在小程序本次启动期间可以正常使用,
+ * 如需持久保存,需在主动调用wx.saveFile,在小程序下次启动时才能访问得到。
+ * @deprecated 1.6.0
+ */
+ function startRecord(options: StartRecordOptions): void;
+ interface StopRecordOptions extends BaseOptions {
+ success?(): void;
+ }
+ /**
+ * 主动调用停止录音。
+ */
+ function stopRecord(options?: StopRecordOptions): void;
+ type EncodeBitRate =
+ | 8000
+ | 11025
+ | 12000
+ | 16000
+ | 22050
+ | 24000
+ | 32000
+ | 44100
+ | 48000;
+ interface RecorderManagerStartOptions {
+ /**
+ * 指定录音的时长,单位 ms
+ * 如果传入了合法的 duration
+ * 在到达指定的 duration 后会自动停止录音,最大值 600000(10 分钟),默认值 60000(1 分钟)
+ */
+ duration?: number;
+ /**
+ * 采样率,有效值 8000/16000/44100
+ */
+ sampleRate?: number;
+ /**
+ * 否 录音通道数,有效值 1/2
+ */
+ numberOfChannels?: number;
+ /**
+ * 编码码率
+ * 采样率和码率有一定要求,具体有效值如下:
+ * 采样率 编码码率
+ * + 8000 16000 ~ 48000
+ * + 11025 16000 ~ 48000
+ * + 12000 24000 ~ 64000
+ * + 16000 24000 ~ 96000
+ * + 22050 32000 ~ 128000
+ * + 24000 32000 ~ 128000
+ * + 32000 48000 ~ 192000
+ * + 44100 64000 ~ 320000
+ * + 48000 64000 ~ 320000
+ */
+ encodeBitRate: number;
+ /** 音频格式,有效值 aac/mp3 */
+ format: string;
+ /**
+ * 指定帧大小,单位 KB
+ * 传入 frameSize 后,每录制指定帧大小的内容后
+ * 会回调录制的文件内容,不指定则不会回调。暂仅支持 mp3 格式。
+ */
+ frameSize: number;
+ }
+ interface OnRecorderManagerStopOptions {
+ tempFilePath: string;
+ }
+ interface OnFrameRecordedOptions {
+ /** 录音分片结果数据 */
+ frameBuffer: ArrayBuffer;
+ /** 当前帧是否正常录音结束前的最后一帧 */
+ isLastFrame: boolean;
+ }
+ interface RecorderManager {
+ /** 开始录音 */
+ start(options?: RecorderManagerStartOptions): void;
+ /** 暂停录音 */
+ pause(): void;
+ /** 继续录音 */
+ resume(): void;
+ /** 停止录音 */
+ stop(): void;
+ /** 录音开始事件 */
+ onStart(callback?: () => void): void;
+ /** 录音暂停事件 */
+ onPause(callback?: () => void): void;
+ /** 录音恢复事件 */
+ onResume(callback?: () => void): void;
+ /** 录音停止事件,会回调文件地址 */
+ onStop(
+ callback?: (options: OnRecorderManagerStopOptions) => void
+ ): void;
+ /** 已录制完指定帧大小的文件,会回调录音分片结果数据。如果设置了 frameSize ,则会回调此事件 */
+ onFrameRecorded(
+ callback?: (options: OnFrameRecordedOptions) => void
+ ): void;
+ /** 录音错误事件, 会回调错误信息 */
+ onError(callback?: (err: ErrMsgResponse) => void): void;
+ }
+ /**
+ * 获取全局唯一的录音管理器 recorderManager
+ * @version 1.6.0
+ */
+ function getRecorderManager(): RecorderManager;
+ // 媒体-----音频播放控制
+ interface PlayVoiceOptions extends BaseOptions {
+ /** 需要播放的语音文件的文件路径 */
+ filePath: string;
+ }
+ /**
+ * 开始播放语音,同时只允许一个语音文件正在播放,
+ * 如果前一个语音文件还没播放完,将中断前一个语音播放。
+ * @deprecated 1.6.0
+ */
+ function playVoice(options: PlayVoiceOptions): void;
+ /**
+ * 暂停正在播放的语音。
+ * 再次调用wx.playVoice播放同一个文件时,会从暂停处开始播放。
+ * 如果想从头开始播放,需要先调用 wx.stopVoice。
+ * @deprecated 1.6.0
+ */
+ function pauseVoice(): void;
+ /**
+ * 结束播放语音。
+ * @deprecated 1.6.0
+ */
+ function stopVoice(): void;
+ // 媒体-----音乐播放控制
+ interface BackgroundAudioPlayerState {
+ /** 选定音频的长度(单位:s),只有在当前有音乐播放时返回 */
+ duration: number;
+ /** 选定音频的播放位置(单位:s),只有在当前有音乐播放时返回 */
+ currentPosition: number;
+ /** 播放状态(2:没有音乐在播放,1:播放中,0:暂停中) */
+ status: number;
+ /** 音频的下载进度(整数,80 代表 80%),只有在当前有音乐播放时返回 */
+ downloadPercent: number;
+ /** 歌曲数据链接,只有在当前有音乐播放时返回 */
+ dataUrl: string;
+ }
+ interface GetBackgroundAudioPlayerStateOptions extends BaseOptions {
+ /** 接口调用成功的回调函数 */
+ success?(state: BackgroundAudioPlayerState): void;
+ /** 接口调用失败的回调函数 */
+ fail?(): void;
+ /** 接口调用结束的回调函数(调用成功、失败都会执行) */
+ complete?(): void;
+ }
+ /**
+ * 获取音乐播放状态。
+ * @deprecated 1.2.0
+ */
+ function getBackgroundAudioPlayerState(
+ options: GetBackgroundAudioPlayerStateOptions
+ ): void;
+ interface PlayBackgroundAudioOptions extends BaseOptions {
+ /** 音乐链接 */
+ dataUrl: string;
+ /** 音乐标题 */
+ title?: string;
+ /** 封面URL */
+ coverImgUrl?: string;
+ }
+ /**
+ * 播放音乐,同时只能有一首音乐正在播放。
+ * @deprecated 1.2.0
+ */
+ function playBackgroundAudio(options: PlayBackgroundAudioOptions): void;
+ /**
+ * 暂停播放音乐。
+ * @deprecated 1.2.0
+ */
+ function pauseBackgroundAudio(options?: PlayBackgroundAudioOptions): void;
+ interface SeekBackgroundAudioOptions extends BaseOptions {
+ /** 音乐位置,单位:秒 */
+ position: number;
+ }
+ /**
+ * 控制音乐播放进度。
+ * @deprecated 1.2.0
+ */
+ function seekBackgroundAudio(options: SeekBackgroundAudioOptions): void;
+ /**
+ * 停止播放音乐。
+ * @deprecated 1.2.0
+ */
+ function stopBackgroundAudio(options?: PlayBackgroundAudioOptions): void;
+ /**
+ * 监听音乐播放。
+ * @deprecated 1.2.0
+ */
+ function onBackgroundAudioPlay(callback: () => void): void;
+ /**
+ * 监听音乐暂停。
+ * @deprecated 1.2.0
+ */
+ function onBackgroundAudioPause(callback: () => void): void;
+ /**
+ * 监听音乐停止。
+ * @deprecated 1.2.0
+ */
+ function onBackgroundAudioStop(callback: () => void): void;
+ interface BackgroundAudioManager {
+ /** 当前音频的长度(单位:s),只有在当前有合法的 src 时返回 */
+ readonly duration: number;
+ /** 当前音频的播放位置(单位:s),只有在当前有合法的 src 时返回 */
+ readonly currentTime: number;
+ /** 当前是是否暂停或停止状态,true 表示暂停或停止,false 表示正在播放 */
+ readonly paused: boolean;
+ /** 音频的数据源,默认为空字符串,当设置了新的 src 时,会自动开始播放 ,目前支持的格式有 m4a, aac, mp3, wav */
+ src: string;
+ /** 音频开始播放的位置(单位:s) */
+ startTime: number;
+ /** 音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲。 是 */
+ buffered: number;
+ /** 音频标题,用于做原生音频播放器音频标题。原生音频播放器中的分享功能,分享出去的卡片标题,也将使用该值。 */
+ title: string;
+ /** 专辑名,原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值 */
+ epname: string;
+ /** 歌手名,原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值 */
+ singer: string;
+ /** 封面图url,用于做原生音频播放器背景图。原生音频播放器中的分享功能,分享出去的卡片配图及背景也将使用该图。 */
+ coverImgUrl: string;
+ /** 页面链接,原生音频播放器中的分享功能,分享出去的卡片简介,也将使用该值 */
+ webUrl: string;
+ /** 播放 */
+ play(): void;
+ /** 暂停 */
+ pause(): void;
+ /** 停止 */
+ stop(): void;
+ /** 跳转到指定位置,单位 s */
+ seek(position: number): void;
+ /** 背景音频进入可以播放状态,但不保证后面可以流畅播放 */
+ onCanplay(callback?: () => void): void;
+ /** 背景音频播放事件 */
+ onPlay(callback?: () => void): void;
+ /** 背景音频暂停事件 */
+ onPause(callback?: () => void): void;
+ /** 背景音频停止事件 */
+ onStop(callback?: () => void): void;
+ /** 背景音频自然播放结束事件 */
+ onEnded(callback?: () => void): void;
+ /** 背景音频播放进度更新事件 */
+ onTimeUpdate(callback?: () => void): void;
+ /** 用户在系统音乐播放面板点击上一曲事件(iOS only) */
+ onPrev(callback?: () => void): void;
+ /** 用户在系统音乐播放面板点击下一曲事件(iOS only) */
+ onNext(callback?: () => void): void;
+ /** 背景音频播放错误事件 */
+ onError(callback?: () => void): void;
+ /** 音频加载中事件,当音频因为数据不足,需要停下来加载时会触发 */
+ onWaiting(callback?: () => void): void;
+ }
+ /**
+ * 获取全局唯一的背景音频管理器 backgroundAudioManager。
+ * @version 1.2.0
+ */
+ function getBackgroundAudioManager(): BackgroundAudioManager;
+ // 媒体-----音频组件控制
+ /**
+ * audioContext 通过 audioId 跟一个 组件绑定,通过它可以操作对应的 组件。
+ */
+ interface AudioContext {
+ /**
+ * 音频的地址
+ */
+ setSrc(src: string): void;
+ /**
+ * 播放
+ */
+ play(): void;
+ /**
+ * 暂停
+ */
+ pause(): void;
+ /**
+ * 跳转到指定位置,单位 s
+ */
+ seek(position: number): void;
+ }
+ /**
+ * 创建并返回 audio 上下文 audioContext 对象
+ * @param audioId audio标签id
+ * @example
+ *
+ *
+ *
+ *
+ *
+ *
+ * // audio.js
+ * Page({
+ * onReady: function (e) {
+ * // 使用 wx.createAudioContext 获取 audio 上下文 context
+ * this.audioCtx = wx.createAudioContext('myAudio')
+ * this.audioCtx.setSrc('http://ws.stream.qqmusic.qq.com/
+ * M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&
+ * uin=346897220&vkey=6292F51E1E384E06DCBDC9AB7C49FD713D632D313AC4858BACB8DDD29067D3C601481D36E62053BF8DFEAF74C0A5CCFADD6471160CAF3E6A&
+ * fromtag=46')
+ * this.audioCtx.play()
+ * },
+ * data: {
+ * src: ''
+ * },
+ * audioPlay: function () {
+ * this.audioCtx.play()
+ * },
+ * audioPause: function () {
+ * this.audioCtx.pause()
+ * },
+ * audio14: function () {
+ * this.audioCtx.seek(14)
+ * },
+ * audioStart: function () {
+ * this.audioCtx.seek(0)
+ * }
+ * })
+ * @deprecated 1.6.0
+ */
+ function createAudioContext(audioId: string, instance: any): AudioContext;
+ interface InnerAudioContext {
+ /** 当前音频的长度(单位:s),只有在当前有合法的 src 时返 */
+ readonly duration: number;
+ /** 当前音频的播放位置(单位:s),只有在当前有合法的 src 时返回,时间不取整,保留小数点后 6 */
+ readonly currentTime: number;
+ /** 当前是是否暂停或停止状态,true 表示暂停或停止,false 表示正在播 */
+ readonly paused: boolean;
+ /** 音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲 */
+ readonly buffered: number;
+ /** 音频的数据链接,用于直接播放。 */
+ src: string;
+ /** 开始播放的位置(单位:s),默认 0 */
+ startTime: number;
+ /** 是否自动开始播放,默认 false */
+ autoplay: boolean;
+ /** 是否循环播放,默认 false */
+ loop: boolean;
+ /** 是否遵循系统静音开关,当此参数为 false 时,即使用户打开了静音开关,也能继续发出声音,默认值 true */
+ obeyMuteSwitch: boolean;
+ /** 播放 */
+ play(): void;
+ /** 暂停 */
+ pause(): void;
+ /** 停止 */
+ stop(): void;
+ /** 跳转到指定位置,单位 s */
+ seek(position: number): void;
+ /** 销毁当前实例 */
+ destroy(): void;
+ /** 音频进入可以播放状态,但不保证后面可以流畅播放 */
+ onCanplay(callback?: () => void): void;
+ /** 音频播放事件 */
+ onPlay(callback?: () => void): void;
+ /** 音频暂停事件 */
+ onPause(callback?: () => void): void;
+ /** 音频停止事件 */
+ onStop(callback?: () => void): void;
+ /** 音频自然播放结束事件 */
+ onEnded(callback?: () => void): void;
+ /** 音频播放进度更新事件 */
+ onTimeUpdate(callback?: () => void): void;
+ /** 音频播放错误事件 */
+ onError(callback?: () => void): void;
+ /** 音频加载中事件,当音频因为数据不足,需要停下来加载时会触发 */
+ onWaiting(callback?: () => void): void;
+ /** 音频进行 seek 操作事件 */
+ onSeeking(callback?: () => void): void;
+ /** 音频完成 seek 操作事件 */
+ onSeeked(callback?: () => void): void;
+ }
+ /**
+ * 创建并返回内部 audio 上下文 innerAudioContext 对象。
+ * 本接口是 wx.createAudioContext 升级版。
+ * @version 1.6.0
+ */
+ function createInnerAudioContext(): InnerAudioContext;
+ // 媒体-----视频
+ interface ChooseVideoOptions extends BaseOptions {
+ /** album 从相册选视频,camera 使用相机拍摄,默认为:['album', 'camera'] */
+ sourceType?: VideoSourceType[];
+ /** 拍摄视频最长拍摄时间,单位秒。最长支持60秒 */
+ maxDuration?: number;
+ /** 前置或者后置摄像头,默认为前后都有,即:['front', 'back'] */
+ camera?: CameraDevice[];
+ /** 接口调用成功,返回视频文件的临时文件路径,详见返回参数说明 */
+ success?(res: VideoData): void;
+ }
+ /**
+ * 拍摄视频或从手机相册中选视频,返回视频的临时文件路径。
+ */
+ function chooseVideo(options: ChooseVideoOptions): void;
+ // 媒体-----视频组件控制
+ interface VideoContext {
+ /**
+ * 播放
+ */
+ play(): void;
+ /**
+ * 暂停
+ */
+ pause(): void;
+ /**
+ * 跳转到指定位置,单位 s
+ */
+ seek(position: number): void;
+ /**
+ * 发送弹幕,danmu 包含两个属性 text, color。
+ */
+ sendDanmu(danmu: { text: string; color: number | string }): void;
+ }
+ interface VideoData {
+ /** 选定视频的临时文件路径 */
+ tempFilePath: string;
+ /** 选定视频的时间长度 */
+ duration: number;
+ /** 选定视频的数据量大小 */
+ size: number;
+ /** 返回选定视频的长 */
+ height: number;
+ /** 返回选定视频的宽 */
+ width: number;
+ }
+ /**
+ * 创建并返回 video 上下文 videoContext 对象
+ * @param videoId video标签id
+ */
+ function createVideoContext(videoId: string): VideoContext;
+ interface TakePhotoOptions extends BaseOptions {
+ /** 成像质量,值为high, normal, low,默认normal */
+ quality?: string;
+ success?(res: { tempImagePath: string }): void;
+ }
+ interface StartRecordOptions extends BaseOptions {
+ /** 超过30s或页面onHide时会结束录像 */
+ timeoutCallback?(res: {
+ tempThumbPath: string;
+ tempVideoPath: string;
+ }): void;
+ }
+ interface StopRecordOptions extends BaseOptions {
+ success?(res: { tempThumbPath: string; tempVideoPath: string }): void;
+ }
+ interface CameraContext {
+ /** 拍照,可指定质量,成功则返回图片 */
+ takePhoto(options: TakePhotoOptions): void;
+ /** 开始录像 */
+ startRecord(options: StartRecordOptions): void;
+ /** 结束录像,成功则返回封面与视频 */
+ stopRecord(options: StopRecordOptions): void;
+ }
+ /**
+ * 创建并返回 camera 上下文 cameraContext 对象
+ * cameraContext 与页面的 camera 组件绑定
+ * 一个页面只能有一个camera,通过它可以操作对应的 组件。
+ * 在自定义组件下,第一个参数传入组件实例this,以操作组件内 组件
+ * @version 1.6.0
+ */
+ function createCameraContext(instance: any): CameraContext;
+ interface RequestFullScreenOptions extends BaseOptions {
+ /** 有效值为 0(正常竖向), 90(屏幕逆时针90度), -90(屏幕顺时针90度) */
+ direction: number;
+ }
+ interface LivePlayerContext {
+ /** 播放 */
+ play(options: BaseOptions): void;
+ /** 停止 */
+ stop(options: BaseOptions): void;
+ /** 静音 */
+ mute(options: BaseOptions): void;
+ /** 进入全屏 */
+ requestFullScreen(options: RequestFullScreenOptions): void;
+ /** 退出全屏 */
+ exitFullScreen(options: BaseOptions): void;
+ }
+ /**
+ * 操作对应的 组件。
+ * 创建并返回 live-player 上下文 LivePlayerContext 对象。
+ * 在自定义组件下,第二个参数传入组件实例this,以操作组件内 组件
+ * @version 1.7.0
+ */
+ function createLivePlayerContext(
+ id: string,
+ instance: any
+ ): LivePlayerContext;
+ // 文件
+ interface SavedFileData {
+ /** 文件的保存路径 */
+ savedFilePath: string;
+ }
+ interface SaveFileOptions extends BaseOptions {
+ /** 需要保存的文件的临时路径 */
+ tempFilePath: string;
+ /** 返回文件的保存路径,res = {savedFilePath: '文件的保存路径'} */
+ success?(res: SavedFileData): void;
+ }
+ /**
+ * 保存文件到本地。
+ * 本地文件存储的大小限制为 10M
+ */
+ function saveFile(options: SaveFileOptions): void;
+ interface File {
+ /**
+ * 文件的本地路径
+ */
+ filePath: string;
+ /**
+ * 文件的保存时的时间戳,从1970/01/01 08:00:00 到当前时间的秒数
+ */
+ createTime: number;
+ /**
+ * 文件大小,单位B
+ */
+ size: number;
+ }
+ interface GetFileInfoOptions extends BaseOptions {
+ /** 本地文件路径 */
+ filePath: string;
+ /** 计算文件摘要的算法,默认值 md5,有效值:md5,sha1 */
+ digestAlgorithm?: string;
+ success?(options: GetFileInfoSuccess): void;
+ }
+ interface GetFileInfoSuccess {
+ /** 文件大小,单位:B */
+ size: number;
+ /** 按照传入的 digestAlgorithm 计算得出的的文件摘要 */
+ digest: string;
+ /** 调用结果 */
+ errMsg: string;
+ }
+ /**
+ * 获取文件信息
+ * @version 1.4.0
+ */
+ function getFileInfo(options: GetFileInfoOptions): void;
+ interface GetSavedFileListData {
+ /**
+ * 接口调用结果
+ */
+ errMsg: string;
+ /**
+ * 文件列表
+ */
+ fileList: File[];
+ }
+ interface GetSavedFileListOptions extends BaseOptions {
+ /** 接口调用成功的回调函数 */
+ success?(res: GetSavedFileListData): void;
+ }
+ /**
+ * 获取本地已保存的文件列表
+ */
+ function getSavedFileList(options: GetSavedFileListOptions): void;
+ interface SavedFileInfoData {
+ /**
+ * 接口调用结果
+ */
+ errMsg: string;
+ /**
+ * 文件大小,单位B
+ */
+ size: number;
+ /**
+ * 文件的保存是的时间戳,从1970/01/01 08:00:00 到当前时间的秒数
+ */
+ createTime: number;
+ }
+ interface GetSavedFileInfoOptions extends BaseOptions {
+ filePath: string;
+ /** 接口调用成功的回调函数 */
+ success?(res: SavedFileInfoData): void;
+ }
+ /**
+ * 获取本地文件的文件信息
+ */
+ function getSavedFileInfo(options: GetSavedFileInfoOptions): void;
+ type RemoveSavedFileOptions = BaseOptions;
+ /**
+ * 删除本地存储的文件
+ */
+ function removeSavedFile(options: RemoveSavedFileOptions): void;
+ interface OpenDocumentOptions extends BaseOptions {
+ /**
+ * 文件路径,可通过 downFile 获得
+ */
+ filePath: string;
+ }
+ /**
+ * 新开页面打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx
+ */
+ function openDocument(options: OpenDocumentOptions): void;
+ // 数据缓存
+ interface SetStorageOptions extends BaseOptions {
+ /** 本地缓存中的指定的 key */
+ key: string;
+ /** 需要存储的内容 */
+ data: any | string;
+ }
+ /**
+ * 将数据存储在本地缓存中指定的 key 中,
+ * 会覆盖掉原来该 key 对应的内容,这是一个异步接口。
+ */
+ function setStorage(options: SetStorageOptions): void;
+ /**
+ * 将 data 存储在本地缓存中指定的 key 中,
+ * 会覆盖掉原来该 key 对应的内容,这是一个同步接口。
+ *
+ * @param key 本地缓存中的指定的 key
+ * @param data 需要存储的内容
+ */
+ function setStorageSync(key: string, data: any | string): void;
+ interface GetStorageOptions extends BaseOptions {
+ /** 本地缓存中的指定的 key */
+ key: string;
+ /** 接口调用的回调函数,res = {data: key对应的内容} */
+ success(res: DataResponse): void;
+ }
+ /**
+ * 从本地缓存中异步获取指定 key 对应的内容。
+ */
+ function getStorage(options: GetStorageOptions): void;
+ /**
+ * 从本地缓存中同步获取指定 key 对应的内容。
+ *
+ */
+ function getStorageSync(key: string): any | string;
+ interface StorageInfo {
+ /**
+ * 当前storage中所有的key
+ */
+ keys: string[];
+ /**
+ * 当前占用的空间大小, 单位kb
+ */
+ currentSize: number;
+ /**
+ * 限制的空间大小,单位kb
+ */
+ limitSize: number;
+ }
+ interface GetStorageInfoOptions extends BaseOptions {
+ success(res: StorageInfo): void;
+ }
+ /**
+ * 异步获取当前storage的相关信息
+ */
+ function getStorageInfo(options: GetStorageInfoOptions): void;
+ function getStorageInfoSync(): GetStorageInfoOptions;
+ interface RemoveStorageOptions extends BaseOptions {
+ key: string;
+ success?(res: DataResponse): void;
+ }
+ function removeStorage(options: RemoveStorageOptions): void;
+ function removeStorageSync(key: string): DataResponse;
+ /**
+ * 清理本地数据缓存。
+ */
+ function clearStorage(): void;
+ /**
+ * 同步清理本地数据缓存
+ */
+ function clearStorageSync(): void;
+ // #endregion
+ // #region 位置API列表
+ // 位置-----获取位置
+ interface LocationData {
+ /** 纬度,浮点数,范围为-90~90,负数表示南纬 */
+ latitude: number;
+ /** 经度,浮点数,范围为-180~180,负数表示西经 */
+ longitude: number;
+ /** 速度,浮点数,单位m/s */
+ speed: number;
+ /** 位置的精确度 */
+ accuracy: number;
+ }
+ interface GetLocationOptions extends BaseOptions {
+ /** 默认为 wgs84 返回 gps 坐标,gcj02 返回可用于wx.openLocation的坐标 */
+ type?: "wgs84" | "gcj02";
+ /** 接口调用成功的回调函数,返回内容详见返回参数说明。 */
+ success(res: LocationData): void;
+ }
+ /**
+ * 获取当前的地理位置、速度。
+ */
+ function getLocation(options: GetLocationOptions): void;
+ interface ChooseLocationData {
+ /**
+ * 位置名称
+ */
+ name: string;
+ /**
+ * 详细地址
+ */
+ address: string;
+ /**
+ * 纬度,浮点数,范围为-90~90,负数表示南纬
+ */
+ latitude: number;
+ /**
+ * 经度,浮点数,范围为-180~180,负数表示西经
+ */
+ longitude: number;
+ }
+ interface ChooseLocationOptions extends BaseOptions {
+ success(res: ChooseLocationData): void;
+ }
+ /**
+ * 打开地图选择位置
+ */
+ function chooseLocation(options: ChooseLocationOptions): void;
+ // 位置-----查看位置
+ interface OpenLocationOptions extends BaseOptions {
+ /** 纬度,范围为-90~90,负数表示南纬 */
+ latitude: number;
+ /** 经度,范围为-180~180,负数表示西经 */
+ longitude: number;
+ /** 缩放比例,范围1~28,默认为28 */
+ scale?: number;
+ /** 位置名 */
+ name?: string;
+ /** 地址的详细说明 */
+ address?: string;
+ }
+ /**
+ * 使用微信内置地图查看位置
+ */
+ function openLocation(options: OpenLocationOptions): void;
+ // 位置-----地图组件控制
+ interface GetCenterLocationOptions extends BaseOptions {
+ success(res: { longitude: number; latitude: number }): void;
+ }
+ /**
+ * mapContext 通过 mapId 跟一个 组件绑定,通过它可以操作对应的 组件。
+ */
+ interface MapContext {
+ /**
+ * 获取当前地图中心的经纬度,返回的是 gcj02 坐标系,可以用于 wx.openLocation
+ */
+ getCenterLocation(
+ options: GetCenterLocationOptions
+ ): OpenLocationOptions;
+ /**
+ * 将地图中心移动到当前定位点,需要配合map组件的show-location使用
+ */
+ moveToLocation(): void;
+ }
+ /**
+ * 创建并返回 map 上下文 mapContext 对象
+ */
+ function createMapContext(mapId: string): MapContext;
+ // #endregion
+ // #region 设备API列表
+ // 设备-----系统信息
+ interface SystemInfo {
+ /** 手机型号 */
+ model: string;
+ /** 设备像素比 */
+ pixelRatio: number;
+ /** 窗口宽度 */
+ windowWidth: number;
+ /** 窗口高度 */
+ windowHeight: number;
+ /** 微信设置的语言 */
+ language: string;
+ /** 微信版本号 */
+ version: string;
+ }
+ interface GetSystemInfoOptions extends BaseOptions {
+ /** 成功获取系统信息的回调 */
+ success(res: SystemInfo): void;
+ }
+ /**
+ * 获取系统信息。
+ */
+ function getSystemInfo(options: GetSystemInfoOptions): void;
+ function getSystemInfoSync(): SystemInfo;
+ /**
+ * 判断小程序的API,回调,参数,组件等是否在当前版本可用。
+ * String参数说明:
+ * 使用 ${API}.${method}.${param}.${options}
+ * 或者 ${component}.${attribute}.${option}方式来调用
+ * 例如:
+ * ${API} 代表 API 名字
+ * ${method} 代表调用方式,有效值为return, success, object, callback
+ * ${param} 代表参数或者返回值
+ * ${options} 代表参数的可选值
+ * ${component} 代表组件名字
+ * ${attribute} 代表组件属性
+ * ${option} 代表组件属性的可选值
+ */
+ function canIUse(api: string): boolean;
+ // 设备-----网络状态
+ type networkType = "2g" | "3g" | "4g" | "wifi" | "unknown" | "none";
+ interface NetworkTypeData {
+ /** 返回网络类型2g,3g,4g,wifi */
+ networkType: networkType;
+ }
+ interface GetNetworkTypeOptions extends BaseOptions {
+ /** 接口调用成功,返回网络类型 networkType */
+ success(res: NetworkTypeData): void;
+ }
+ /**
+ * 获取网络类型。
+ */
+ function getNetworkType(options: GetNetworkTypeOptions): void;
+ /**
+ * 监听网络状态变化。
+ * 微信客户端 6.5.6 版本开始支持
+ * @version 1.1.0
+ */
+ function onNetworkStatusChange(
+ callback: (
+ res: {
+ isConnected: boolean;
+ networkType: networkType;
+ }
+ ) => void
+ ): void;
+ // 设备-----加速度计
+ interface AccelerometerData {
+ /** X 轴 */
+ x: number;
+ /** Y 轴 */
+ y: number;
+ /** Z 轴 */
+ z: number;
+ }
+ type AccelerometerChangeCallback = (res: AccelerometerData) => void;
+ /**
+ * 监听重力感应数据,频率:5次/秒
+ */
+ function onAccelerometerChange(callback: AccelerometerChangeCallback): void;
+ type AccelerometerOptions = BaseOptions;
+ /**
+ * 开始监听加速度数据。
+ * 微信客户端 6.5.6 版本开始支持
+ * @version 1.1.0
+ */
+ function startAccelerometer(options: AccelerometerOptions): void;
+ /**
+ * 停止监听加速度数据。
+ * 微信客户端 6.5.6 版本开始支持
+ * @version 1.1.0
+ */
+ function stopAccelerometer(options: AccelerometerOptions): void;
+ // 设备-----罗盘
+ interface CompassData {
+ /** 面对的方向度数 */
+ direction: number;
+ }
+ type CompassChangeCallback = (res: CompassData) => void;
+ /**
+ * 监听罗盘数据,频率:5次/秒,接口调用后会自动开始监听,可使用wx.stopCompass停止监听。
+ */
+ function onCompassChange(callback: CompassChangeCallback): void;
+ type CompassOptions = BaseOptions;
+ /**
+ * 开始监听罗盘数据。
+ * 微信客户端 6.5.6 版本开始支持
+ * @version 1.1.0
+ */
+ function startCompass(options: CompassOptions): void;
+ function stopCompass(options: CompassOptions): void;
+ // 设备-----拨打电话
+ interface MakePhoneCallOptions extends BaseOptions {
+ /**
+ * 需要拨打的电话号码
+ */
+ phoneNumber: string;
+ }
+ /**
+ * 拨打电话
+ */
+ function makePhoneCall(options: MakePhoneCallOptions): void;
+ // 设备-----扫码
+ type scanType = "qrCode" | "barCode";
+ interface ScanCodeData {
+ /**
+ * 所扫码的内容
+ */
+ result: string;
+ /**
+ * 所扫码的类型
+ */
+ scanType: scanType;
+ /**
+ * 所扫码的字符集
+ */
+ charSet: string;
+ /**
+ * 当所扫的码为当前小程序的合法二维码时,会返回此字段,内容为二维码携带的 path
+ */
+ path: string;
+ }
+ interface ScanCodeOptions extends BaseOptions {
+ /**
+ * 是否只能从相机扫码,不允许从相册选择图片
+ * @version 1.2.0
+ */
+ onlyFromCamera?: boolean;
+ /**
+ * 扫码类型,参数类型是数组
+ * 二维码是'qrCode',一维码是'barCode',DataMatrix是‘datamatrix’,pdf417是‘pdf417’。
+ * @version 1.7.0
+ */
+ scanType?: string[];
+ success(res: ScanCodeData): void;
+ }
+ /**
+ * 调起客户端扫码界面,扫码成功后返回对应的结果
+ */
+ function scanCode(options: ScanCodeOptions): void;
+ // 设备-----剪贴板
+ interface ClipboardDataOptions extends BaseOptions {
+ data: string;
+ success?(res: DataResponse): void;
+ }
+ /**
+ * 设置系统剪贴板的内容
+ * 微信客户端 6.5.6 版本开始支持
+ * @version 1.1.0
+ */
+ function setClipboardData(options: ClipboardDataOptions): void;
+ /**
+ * 获取系统剪贴板内容
+ * 微信客户端 6.5.6 版本开始支持
+ * @version 1.1.0
+ */
+ function getClipboardData(options: ClipboardDataOptions): void;
+ // 设备-----蓝牙
+ interface OpenBluetoothAdapterOptions extends BaseOptions {
+ success(res: any): void;
+ }
+ /**
+ * 初始化蓝牙适配器
+ * @version 1.1.0
+ */
+ function openBluetoothAdapter(options: OpenBluetoothAdapterOptions): void;
+ interface CloseBluetoothAdapterOptions extends BaseOptions {
+ success(res: any): void;
+ }
+ /**
+ * 关闭蓝牙模块。调用该方法将断开所有已建立的链接并释放系统资源
+ * @version 1.1.0
+ */
+ function closeBluetoothAdapter(options: CloseBluetoothAdapterOptions): void;
+ interface BluetoothAdapterState {
+ /**
+ * 蓝牙适配器是否可用
+ */
+ available: boolean;
+ /**
+ * 蓝牙适配器是否处于搜索状态
+ */
+ discovering: boolean;
+ }
+ interface BluetoothAdapterStateData extends ErrMsgResponse {
+ /**
+ * 蓝牙适配器信息
+ */
+ adapterState: BluetoothAdapterState;
+ }
+ interface GetBluetoothAdapterStateOptions extends BaseOptions {
+ success(res: BluetoothAdapterStateData): void;
+ }
+ /**
+ * 获取本机蓝牙适配器状态
+ * @version 1.1.0
+ */
+ function getBluetoothAdapterState(
+ options: GetBluetoothAdapterStateOptions
+ ): void;
+ /**
+ * 监听蓝牙适配器状态变化事件
+ * @version 1.1.0
+ */
+ function onBluetoothAdapterStateChange(
+ callback: (res: BluetoothAdapterState) => void
+ ): void;
+ interface StartBluetoothDevicesDiscoveryOptions extends BaseOptions {
+ success(res: ErrMsgResponse): void;
+ /**
+ * 蓝牙设备主 service 的 uuid 列表
+ * 某些蓝牙设备会广播自己的主 service 的 uuid。如果这里传入该数组,那么根据该 uuid 列表,只搜索有这个主服务的设备。
+ */
+ services?: string[];
+ }
+ /**
+ * 开始搜寻附近的蓝牙外围设备。
+ * 注意,该操作比较耗费系统资源,请在搜索并连接到设备后调用 stop 方法停止搜索。
+ * @example
+ * // 以微信硬件平台的蓝牙智能灯为例,主服务的 UUID 是 FEE7。传入这个参数,只搜索主服务 UUID 为 FEE7 的设备
+ * wx.startBluetoothDevicesDiscovery({
+ * services: ['FEE7'],
+ * success: function (res) {
+ * console.log(res)
+ * }
+ * });
+ */
+ function startBluetoothDevicesDiscovery(
+ options: StartBluetoothDevicesDiscoveryOptions
+ ): void;
+ interface StopBluetoothDevicesDiscoveryOptions extends BaseOptions {
+ success(res: ErrMsgResponse): void;
+ }
+ /**
+ * 停止搜寻附近的蓝牙外围设备。请在确保找到需要连接的设备后调用该方法停止搜索。
+ * @version 1.1.0
+ */
+ function stopBluetoothDevicesDiscovery(
+ options: StopBluetoothDevicesDiscoveryOptions
+ ): void;
+ /**
+ * 蓝牙设备信息
+ */
+ interface BluetoothDevice {
+ /**
+ * 蓝牙设备名称,某些设备可能没有
+ */
+ name: string;
+ /**
+ * 用于区分设备的 id
+ */
+ deviceId: string;
+ /**
+ * int 当前蓝牙设备的信号强度
+ */
+ RSSI: number;
+ /**
+ * 当前蓝牙设备的广播内容
+ */
+ advertisData: ArrayBuffer;
+ }
+ interface GetBluetoothDevicesOptions extends BaseOptions {
+ success(
+ res: {
+ devices: BluetoothDevice[];
+ } & ErrMsgResponse
+ ): void;
+ }
+ /**
+ * 获取所有已发现的蓝牙设备,包括已经和本机处于连接状态的设备
+ */
+ function getBluetoothDevices(options: GetBluetoothDevicesOptions): void;
+ /**
+ * 监听寻找到新设备的事件
+ * @version 1.1.0
+ */
+ function onBluetoothDeviceFound(
+ callback: (
+ res: {
+ devices: BluetoothDevice[];
+ }
+ ) => void
+ ): void;
+ interface GetConnectedBluetoothDevicesOptions extends BaseOptions {
+ services: string[];
+ success(
+ res: {
+ devices: BluetoothDevice[];
+ } & ErrMsgResponse
+ ): void;
+ }
+ /**
+ * 根据 uuid 获取处于已连接状态的设备
+ * @version 1.1.0
+ */
+ function getConnectedBluetoothDevices(
+ options: GetConnectedBluetoothDevicesOptions
+ ): void;
+ interface CreateBLEConnectionOptions extends BaseOptions {
+ success(res: ErrMsgResponse): void;
+ }
+ /**
+ * 低功耗蓝牙接口
+ * @version 1.1.0
+ */
+ function createBLEConnection(options: CreateBLEConnectionOptions): void;
+ interface CloseBLEConnectionOptions extends BaseOptions {
+ /**
+ * 蓝牙设备 id,参考 getDevices 接口
+ */
+ deviceId: string;
+ success(res: ErrMsgResponse): void;
+ }
+ /**
+ * 断开与低功耗蓝牙设备的连接
+ * @version 1.1.0
+ */
+ function closeBLEConnection(options: CloseBLEConnectionOptions): void;
+ interface GetBLEDeviceServicesOptions extends BaseOptions {
+ /**
+ * 蓝牙设备 id,参考 getDevices 接口
+ */
+ deviceId: string;
+ /**
+ * 成功则返回本机蓝牙适配器状态
+ */
+ success(
+ res: {
+ services: Array<{
+ uuid: string;
+ isPrimary: boolean;
+ }>;
+ } & ErrMsgResponse
+ ): void;
+ }
+ /**
+ * 获取蓝牙设备所有 service(服务)
+ */
+ function getBLEDeviceServices(options: GetBLEDeviceServicesOptions): void;
+ interface GetBLEDeviceCharacteristicsOptions extends BaseOptions {
+ /**
+ * 蓝牙设备 id,参考 device 对象
+ */
+ deviceId: string;
+ /**
+ * 蓝牙服务 uuid
*/
serviceId: string;
/**
- * 蓝牙设备特征值对应的二进制值
+ * 成功则返回本机蓝牙适配器状态
*/
- value: ArrayBuffer;
- };
- } & ErrMsgResponse): void;
- }
- /**
- * 读取低功耗蓝牙设备的特征值的二进制数据值。
- * 注意:必须设备的特征值支持read才可以成功调用,具体参照 characteristic 的 properties 属性
- */
- function readBLECharacteristicValue(options: BLECharacteristicValueOptions): void;
- /**
- * 向低功耗蓝牙设备特征值中写入二进制数据。
- * 注意:必须设备的特征值支持write才可以成功调用,具体参照 characteristic 的 properties 属性
- * tips: 并行调用多次读写接口存在读写失败的可能性
- */
- function writeBLECharacteristicValue(options: BLECharacteristicValueOptions): void;
- /**
- * 启用低功耗蓝牙设备特征值变化时的 notify 功能。
- * 注意:必须设备的特征值支持notify才可以成功调用,具体参照 characteristic 的 properties 属性
- * 另外,必须先启用notify才能监听到设备 characteristicValueChange 事件
- */
- function notifyBLECharacteristicValueChanged(options: BLECharacteristicValueOptions): void;
- /**
- * 监听低功耗蓝牙连接的错误事件,包括设备丢失,连接异常断开等等。
- */
- function onBLEConnectionStateChanged(callback: (res: {
- /**
- * 蓝牙设备 id,参考 device 对象
- */
- deviceId: string;
- /**
- * 连接目前的状态
- */
- connected: boolean;
- }) => void): void;
- /**
- * 监听低功耗蓝牙设备的特征值变化。必须先启用notify接口才能接收到设备推送的notification。
- */
- function onBLECharacteristicValueChange(callback: (
- res: {
- /**
- * 蓝牙设备 id,参考 device 对象
- */
- deviceId: string;
- /**
- * 特征值所属服务 uuid
- */
- serviceId: string;
- /**
- * 特征值 uuid
- */
- characteristicId: string;
- /**
- * 特征值最新的值
- */
- value: ArrayBuffer;
+ success(
+ res: {
+ characteristics: Array<{
+ uuid: string;
+ properties: Array<{
+ /**
+ * 该特征值是否支持 read 操作
+ */
+ read: boolean;
+ /**
+ * 该特征值是否支持 write 操作
+ */
+ write: boolean;
+ /**
+ * 该特征值是否支持 notify 操作
+ */
+ notify: boolean;
+ /**
+ * 该特征值是否支持 indicate 操作
+ */
+ indicate: boolean;
+ }>;
+ }>;
+ } & ErrMsgResponse
+ ): void;
}
- ) => void): void;
- // #region iBeacon
- interface BeaconDiscoveryOptions extends BaseOptions {
/**
- * iBeacon设备广播的 uuids
+ * 获取蓝牙设备所有 characteristic(特征值)
*/
- uuids: string | string[];
- success?(errMsg: string): void;
- }
- /**
- * 开始搜索附近的iBeacon设备
- * @version 1.2.0
- */
- function startBeaconDiscovery(options: BeaconDiscoveryOptions): void;
- /**
- * 停止搜索附近的iBeacon设备
- * @version 1.2.0
- */
- function stopBeaconDiscovery(options: BeaconDiscoveryOptions): void;
- interface Beacon {
- /** iBeacon 设备广播的 uuid */
- uuid: string;
- /** iBeacon 设备的主 id */
- major: string;
- /** iBeacon 设备的次 id */
- minor: string;
- /** 表示设备距离的枚举值 */
- proximity: number;
- /** iBeacon 设备的距离 */
- accuracy: number;
- /** 表示设备的信号强度 */
- rssi: number;
- }
- interface GetBeaconsSuccess {
- beacons: Beacon[];
- errMsg: string;
- }
- interface GetBeaconsOptions extends BaseOptions {
- success?(options: GetBeaconsSuccess): void;
- }
- /**
- * 获取所有已搜索到的iBeacon设备
- * @version 1.2.0
- */
- function getBeacons(options: GetBeaconsOptions): void;
- /**
- * 监听 iBeacon 设备的更新事件
- * @version 1.2.0
- */
- function onBeaconUpdate(callback?: (beacons: Beacon[]) => void): void;
- /**
- * 监听 iBeacon 服务的状态变化
- * @version 1.2.0
- */
- function onBeaconServiceChange(callback?: (available?: boolean, discovering?: boolean) => void): void;
- // #endregion
- // 设备-----屏幕亮度
- interface SetScreenBrightnessOptions {
- /** 屏幕亮度值,范围 0~1,0 最暗,1 最亮 */
- value: number;
- }
- /**
- * 设置屏幕亮度
- * @version 1.2.0
- */
- function setScreenBrightness(options: SetScreenBrightnessOptions): void;
- interface GetScreenBrightnessOptions extends BaseOptions {
- /** 屏幕亮度值,范围 0~1,0 最暗,1 最亮 */
- success(value: number): void;
- }
- /**
- * 获取屏幕亮度
- * @version 1.2.0
- */
- function getScreenBrightness(options?: GetScreenBrightnessOptions): void;
- interface SetKeepScreenOnOptions extends BaseOptions {
- /** 是否保持屏幕常亮 */
- keepScreenOn: boolean;
- success?(errMsg: string): void;
- }
- /**
- * 设置是否保持常亮状态。
- * 仅在当前小程序生效,离开小程序后设置失效。
- * @version 1.4.0
- */
- function setKeepScreenOn(options?: SetKeepScreenOnOptions): void;
- // 设备-----震动
- /**
- * 使手机发生较长时间的振动(400ms)
- * @version 1.2.0
- */
- function vibrateLong(options?: BaseOptions): void;
- /**
- * 使手机发生较短时间的振动(15ms)
- * @version 1.2.0
- */
- function vibrateShort(options?: BaseOptions): void;
- /**
- * 监听用户主动截屏事件,用户使用系统截屏按键截屏时触发此事件
- * @version 1.4.0
- */
- function onUserCaptureScreen(callback?: (res: any) => void): void;
- // 设备-----手机联系人
- interface PhoneContact extends BaseOptions {
- /** 头像本地文件路径 */
- photoFilePath?: string;
- /** 昵称 */
- nickName?: string;
- /** 姓氏 */
- lastName?: string;
- /** 中间名 */
- middleName?: string;
- /** 名字 */
- firstName: string;
- /** 备注 */
- remark?: string;
- /** 手机号 */
- mobilePhoneNumber?: string;
- /** 微信号 */
- weChatNumber?: string;
- /** 联系地址国家 */
- addressCountry?: string;
- /** 联系地址省份 */
- addressState?: string;
- /** 联系地址城市 */
- addressCity?: string;
- /** 联系地址街道 */
- addressStreet?: string;
- /** 联系地址邮政编码 */
- addressPostalCode?: string;
- /** 公司 */
- organization?: string;
- /** 职位 */
- title?: string;
- /** 工作传真 */
- workFaxNumber?: string;
- /** 工作电话 */
- workPhoneNumber?: string;
- /** 公司电话 */
- hostNumber?: string;
- /** 电子邮件 */
- email?: string;
- /** 网站 */
- url?: string;
- /** 工作地址国家 */
- workAddressCountry?: string;
- /** 工作地址省份 */
- workAddressState?: string;
- /** 工作地址城市 */
- workAddressCity?: string;
- /** 工作地址街道 */
- workAddressStreet?: string;
- /** 工作地址邮政编码 */
- workAddressPostalCode?: string;
- /** 住宅传真 */
- homeFaxNumber?: string;
- /** 住宅电话 */
- homePhoneNumber?: string;
- /** 住宅地址国家 */
- homeAddressCountry?: string;
- /** 住宅地址省份 */
- homeAddressState?: string;
- /** 住宅地址城市 */
- homeAddressCity?: string;
- /** 住宅地址街道 */
- homeAddressStreet?: string;
- /** 住宅地址邮政编码 */
- homeAddressPostalCode?: string;
- }
- /**
- * 增加 手机联系人
- * 调用后,用户可以选择将该表单以“新增联系人”或“添加到已有联系人”的方式
- * 写入手机系统通讯录
- * 完成手机通讯录联系人和联系方式的增加。
- * @version 1.2.0
- */
- function addPhoneContact(options: PhoneContact): void;
- // 设备-----Wi-Fi
- /**
- * 初始化 Wi-Fi 模块。
- * @version 1.6.0
- */
- function startWifi(options?: BaseOptions): void;
- /**
- * 关闭 Wi-Fi 模块。
- * @version 1.6.0
- */
- function stopWifi(options?: BaseOptions): void;
- interface ConnectWiFiOptions extends BaseOptions {
- /** Wi-Fi 设备ssid */
- SSID: string;
- /** Wi-Fi 设备bssid */
- BSSID: string;
- /** Wi-Fi 设备密码 */
- password?: string;
- }
- /**
- * 连接 Wi-Fi。
- * 若已知 Wi-Fi 信息,可以直接利用该接口连接。
- * 仅 Android 与 iOS 11 以上版本支持。
- * @version 1.6.0
- */
- function connectWifi(options?: ConnectWiFiOptions): void;
- /**
- * 请求获取 Wi-Fi 列表
- * 在 onGetWifiList 注册的回调中返回 wifiList 数据。
- * iOS 将跳转到系统的 Wi-Fi 界面,Android 不会跳转。
- * iOS 11.0 及 iOS 11.1 两个版本因系统问题,该方法失效。但在 iOS 11.2 中已修复。
- * @version 1.6.0
- */
- function getWifiList(options?: BaseOptions): void;
- interface WiFi {
- /** Wi-Fi 的SSID */
- SSID: string;
- /** Wi-Fi 的BSSID */
- BSSID: string;
- /** Wi-Fi 是否安全 */
- secure: boolean;
- /** Wi-Fi 信号强度 */
- signalStrength: number;
- }
- interface GetWifiListOptions {
- /** Wi-Fi 列表数据 */
- wifiList: WiFi[];
- }
- /**
- * 监听在获取到 Wi-Fi 列表数据时的事件,在回调中将返回 wifiList。
- * @version 1.6.0
- */
- function onGetWifiList(callback?: (res: GetWifiListOptions) => void): void;
- interface SetWifiList {
- /** Wi-Fi 设备ssid */
- SSID: string;
- /** Wi-Fi 设备bssid */
- BSSID: string;
- /** Wi-Fi 设备密码 */
- password: string;
- }
- interface SetWifiListOptions extends BaseOptions {
- /** 提供预设的 Wi-Fi 信息列表 */
- wifiList: SetWifiList[];
- }
- /**
- * iOS特有接口 在 onGetWifiList 回调后,利用接口设置 wifiList 中 AP 的相关信息。
- * 注意:
- * + 该接口只能在 onGetWifiList 回调之后才能调用。
- * + 此时客户端会挂起,等待小程序设置 Wi-Fi 信息,请务必尽快调用该接口,若无数据请传入一个空数组。
- * + 有可能随着周边 Wi-Fi 列表的刷新,单个流程内收到多次带有存在重复的 Wi-Fi 列表的回调。
- * @version 1.6.0
- */
- function setWifiList(options: SetWifiListOptions): void;
- /**
- * 监听连接上 Wi-Fi 的事件。
- * @version 1.6.0
- */
- function onWifiConnected(callback?: (wifi: WiFi) => void): void;
- interface GetConnectedWifiOptions extends BaseOptions {
- success(wifi: WiFi): void;
- }
- /**
- * 获取已连接中的 Wi-Fi 信息
- * @version 1.6.0
- */
- function getConnectedWifi(options?: GetConnectedWifiOptions): void;
- // #endregion
- // #region 界面API列表
- interface ToastOptions extends BaseOptions {
+ function getBLEDeviceCharacteristics(
+ options: GetBLEDeviceCharacteristicsOptions
+ ): void;
+ interface BLECharacteristicValueOptions extends BaseOptions {
+ /**
+ * 蓝牙设备 id,参考 device 对象
+ */
+ deviceId: string;
+ /**
+ * 蓝牙特征值对应服务的 uuid
+ */
+ serviceId: string;
+ /**
+ * 蓝牙特征值的 uuid
+ */
+ characteristicId: string;
+ success(
+ res: {
+ characteristic: {
+ /**
+ * 蓝牙设备特征值的 uuid
+ */
+ characteristicId: string;
+ /**
+ * 蓝牙设备特征值对应服务的 uuid
+ */
+ serviceId: string;
+ /**
+ * 蓝牙设备特征值对应的二进制值
+ */
+ value: ArrayBuffer;
+ };
+ } & ErrMsgResponse
+ ): void;
+ }
/**
- * 提示的内容
+ * 读取低功耗蓝牙设备的特征值的二进制数据值。
+ * 注意:必须设备的特征值支持read才可以成功调用,具体参照 characteristic 的 properties 属性
*/
- title: string;
+ function readBLECharacteristicValue(
+ options: BLECharacteristicValueOptions
+ ): void;
/**
- * 图标,只支持"success"、"loading"
+ * 向低功耗蓝牙设备特征值中写入二进制数据。
+ * 注意:必须设备的特征值支持write才可以成功调用,具体参照 characteristic 的 properties 属性
+ * tips: 并行调用多次读写接口存在读写失败的可能性
*/
- icon?: 'success' | 'loading';
+ function writeBLECharacteristicValue(
+ options: BLECharacteristicValueOptions
+ ): void;
/**
- * 自定义图标的本地路径,image 的优先级高于 icon
+ * 启用低功耗蓝牙设备特征值变化时的 notify 功能。
+ * 注意:必须设备的特征值支持notify才可以成功调用,具体参照 characteristic 的 properties 属性
+ * 另外,必须先启用notify才能监听到设备 characteristicValueChange 事件
*/
- image?: string;
+ function notifyBLECharacteristicValueChanged(
+ options: BLECharacteristicValueOptions
+ ): void;
/**
- * 提示的延迟时间,单位毫秒,默认:1500
+ * 监听低功耗蓝牙连接的错误事件,包括设备丢失,连接异常断开等等。
*/
- duration?: number;
+ function onBLEConnectionStateChanged(
+ callback: (
+ res: {
+ /**
+ * 蓝牙设备 id,参考 device 对象
+ */
+ deviceId: string;
+ /**
+ * 连接目前的状态
+ */
+ connected: boolean;
+ }
+ ) => void
+ ): void;
/**
- * 是否显示透明蒙层,防止触摸穿透,默认:false
+ * 监听低功耗蓝牙设备的特征值变化。必须先启用notify接口才能接收到设备推送的notification。
*/
- mask?: boolean;
- }
- /**
- * 显示消息提示框
- */
- function showToast(options: ToastOptions): void;
- function hideToast(): void;
- interface LoadingOptions extends BaseOptions {
+ function onBLECharacteristicValueChange(
+ callback: (
+ res: {
+ /**
+ * 蓝牙设备 id,参考 device 对象
+ */
+ deviceId: string;
+ /**
+ * 特征值所属服务 uuid
+ */
+ serviceId: string;
+ /**
+ * 特征值 uuid
+ */
+ characteristicId: string;
+ /**
+ * 特征值最新的值
+ */
+ value: ArrayBuffer;
+ }
+ ) => void
+ ): void;
+ // #region iBeacon
+ interface BeaconDiscoveryOptions extends BaseOptions {
+ /**
+ * iBeacon设备广播的 uuids
+ */
+ uuids: string | string[];
+ success?(errMsg: string): void;
+ }
/**
- * 提示的内容
+ * 开始搜索附近的iBeacon设备
+ * @version 1.2.0
*/
- title: string;
+ function startBeaconDiscovery(options: BeaconDiscoveryOptions): void;
/**
- * 是否显示透明蒙层,防止触摸穿透,默认:false
+ * 停止搜索附近的iBeacon设备
+ * @version 1.2.0
*/
- mask?: boolean;
- }
- /**
- * 显示 loading 提示框, 需主动调用 wx.hideLoading 才能关闭提示框
- */
- function showLoading(options: LoadingOptions): void;
- /**
- * 隐藏消息提示框
- */
- function hideLoading(): void;
- interface ModalOptions extends BaseOptions {
+ function stopBeaconDiscovery(options: BeaconDiscoveryOptions): void;
+ interface Beacon {
+ /** iBeacon 设备广播的 uuid */
+ uuid: string;
+ /** iBeacon 设备的主 id */
+ major: string;
+ /** iBeacon 设备的次 id */
+ minor: string;
+ /** 表示设备距离的枚举值 */
+ proximity: number;
+ /** iBeacon 设备的距离 */
+ accuracy: number;
+ /** 表示设备的信号强度 */
+ rssi: number;
+ }
+ interface GetBeaconsSuccess {
+ beacons: Beacon[];
+ errMsg: string;
+ }
+ interface GetBeaconsOptions extends BaseOptions {
+ success?(options: GetBeaconsSuccess): void;
+ }
/**
- * 提示的标题
+ * 获取所有已搜索到的iBeacon设备
+ * @version 1.2.0
*/
- title: string;
+ function getBeacons(options: GetBeaconsOptions): void;
/**
- * 提示的内容
+ * 监听 iBeacon 设备的更新事件
+ * @version 1.2.0
*/
- content: string;
+ function onBeaconUpdate(callback?: (beacons: Beacon[]) => void): void;
/**
- * 是否显示取消按钮,默认为 true
+ * 监听 iBeacon 服务的状态变化
+ * @version 1.2.0
*/
- showCancel?: boolean;
+ function onBeaconServiceChange(
+ callback?: (available?: boolean, discovering?: boolean) => void
+ ): void;
+ // #endregion
+ // 设备-----屏幕亮度
+ interface SetScreenBrightnessOptions {
+ /** 屏幕亮度值,范围 0~1,0 最暗,1 最亮 */
+ value: number;
+ }
/**
- * 取消按钮的文字,默认为"取消",最多 4 个字符
+ * 设置屏幕亮度
+ * @version 1.2.0
*/
- cancelText?: string;
+ function setScreenBrightness(options: SetScreenBrightnessOptions): void;
+ interface GetScreenBrightnessOptions extends BaseOptions {
+ /** 屏幕亮度值,范围 0~1,0 最暗,1 最亮 */
+ success(value: number): void;
+ }
/**
- * 取消按钮的文字颜色,默认为"#000000"
+ * 获取屏幕亮度
+ * @version 1.2.0
*/
- cancelColor?: string;
+ function getScreenBrightness(options?: GetScreenBrightnessOptions): void;
+ interface SetKeepScreenOnOptions extends BaseOptions {
+ /** 是否保持屏幕常亮 */
+ keepScreenOn: boolean;
+ success?(errMsg: string): void;
+ }
/**
- * 确定按钮的文字,默认为"确定",最多 4 个字符
+ * 设置是否保持常亮状态。
+ * 仅在当前小程序生效,离开小程序后设置失效。
+ * @version 1.4.0
*/
- confirmText?: string;
+ function setKeepScreenOn(options?: SetKeepScreenOnOptions): void;
+ // 设备-----震动
/**
- * 确定按钮的文字颜色,默认为"#3CC51F"
+ * 使手机发生较长时间的振动(400ms)
+ * @version 1.2.0
*/
- confirmColor?: string;
- success?(res: {
- /**
- * 为 true 时,表示用户点击了确定按钮
- */
- confirm: boolean;
- /**
- * 为 true 时,表示用户点击了取消(用于 Android 系统区分点击蒙层关闭还是点击取消按钮关闭)
- */
- cancel: boolean;
- }): void;
- }
- /**
- * 显示模态弹窗
- */
- function showModal(options: ModalOptions): void;
- interface ActionSheetOptions extends BaseOptions {
+ function vibrateLong(options?: BaseOptions): void;
/**
- * 按钮的文字数组,数组长度最大为6个
+ * 使手机发生较短时间的振动(15ms)
+ * @version 1.2.0
*/
- itemList: string[];
+ function vibrateShort(options?: BaseOptions): void;
/**
- * 按钮的文字颜色,默认为"#000000"
+ * 监听用户主动截屏事件,用户使用系统截屏按键截屏时触发此事件
+ * @version 1.4.0
*/
- itemColor?: string;
+ function onUserCaptureScreen(callback?: (res: any) => void): void;
+ // 设备-----手机联系人
+ interface PhoneContact extends BaseOptions {
+ /** 头像本地文件路径 */
+ photoFilePath?: string;
+ /** 昵称 */
+ nickName?: string;
+ /** 姓氏 */
+ lastName?: string;
+ /** 中间名 */
+ middleName?: string;
+ /** 名字 */
+ firstName: string;
+ /** 备注 */
+ remark?: string;
+ /** 手机号 */
+ mobilePhoneNumber?: string;
+ /** 微信号 */
+ weChatNumber?: string;
+ /** 联系地址国家 */
+ addressCountry?: string;
+ /** 联系地址省份 */
+ addressState?: string;
+ /** 联系地址城市 */
+ addressCity?: string;
+ /** 联系地址街道 */
+ addressStreet?: string;
+ /** 联系地址邮政编码 */
+ addressPostalCode?: string;
+ /** 公司 */
+ organization?: string;
+ /** 职位 */
+ title?: string;
+ /** 工作传真 */
+ workFaxNumber?: string;
+ /** 工作电话 */
+ workPhoneNumber?: string;
+ /** 公司电话 */
+ hostNumber?: string;
+ /** 电子邮件 */
+ email?: string;
+ /** 网站 */
+ url?: string;
+ /** 工作地址国家 */
+ workAddressCountry?: string;
+ /** 工作地址省份 */
+ workAddressState?: string;
+ /** 工作地址城市 */
+ workAddressCity?: string;
+ /** 工作地址街道 */
+ workAddressStreet?: string;
+ /** 工作地址邮政编码 */
+ workAddressPostalCode?: string;
+ /** 住宅传真 */
+ homeFaxNumber?: string;
+ /** 住宅电话 */
+ homePhoneNumber?: string;
+ /** 住宅地址国家 */
+ homeAddressCountry?: string;
+ /** 住宅地址省份 */
+ homeAddressState?: string;
+ /** 住宅地址城市 */
+ homeAddressCity?: string;
+ /** 住宅地址街道 */
+ homeAddressStreet?: string;
+ /** 住宅地址邮政编码 */
+ homeAddressPostalCode?: string;
+ }
/**
- * 接口调用成功的回调函数
+ * 增加 手机联系人
+ * 调用后,用户可以选择将该表单以“新增联系人”或“添加到已有联系人”的方式
+ * 写入手机系统通讯录
+ * 完成手机通讯录联系人和联系方式的增加。
+ * @version 1.2.0
*/
- success?(res: {
- /**
- * 用户点击的按钮,从上到下的顺序,从0开始
- */
- tapIndex: number;
- }): void;
- }
- /**
- * 显示操作菜单
- */
- function showActionSheet(options: ActionSheetOptions): void;
- // 界面-----设置置顶信息
- interface SetTopBarTextOptions extends BaseOptions {
+ function addPhoneContact(options: PhoneContact): void;
+ // 设备-----Wi-Fi
/**
- * 置顶栏文字内容
+ * 初始化 Wi-Fi 模块。
+ * @version 1.6.0
*/
- text: string;
- }
- /**
- * 动态设置置顶栏文字内容
- * 只有当前小程序被置顶时能生效,如果当前小程序没有被置顶,也能调用成功,但是不会立即生效
- * 只有在用户将这个小程序置顶后才换上设置的文字内容。
- * 注意:调用成功后,需间隔 5s 才能再次调用此接口,如果在 5s 内再次调用此接口,会回调
- * fail,errMsg:"setTopBarText: fail invoke too frequently"
- * @version 1.4.3
- */
- function setTopBarText(options?: SetTopBarTextOptions): void;
- // 界面-----设置导航条
- interface SetNavigationBarTitleOptions extends BaseOptions {
- /** 页面标题 */
- title: string;
- }
- /**
- * 动态设置当前页面的标题。
- * @version 1.4.3
- */
- function setNavigationBarTitle(options: SetNavigationBarTitleOptions): void;
- /**
- * 在当前页面显示导航条加载动画。
- * @version 1.4.3
- */
- function showNavigationBarLoading(): void;
- /**
- * 隐藏导航条加载动画。
- * @version 1.4.3
- */
- function hideNavigationBarLoading(): void;
- interface SetTabBarBadgeOptions extends BaseOptions {
+ function startWifi(options?: BaseOptions): void;
/**
- * tabBar的哪一项,从左边算起
+ * 关闭 Wi-Fi 模块。
+ * @version 1.6.0
*/
- index: number;
+ function stopWifi(options?: BaseOptions): void;
+ interface ConnectWiFiOptions extends BaseOptions {
+ /** Wi-Fi 设备ssid */
+ SSID: string;
+ /** Wi-Fi 设备bssid */
+ BSSID: string;
+ /** Wi-Fi 设备密码 */
+ password?: string;
+ }
/**
- * 显示的文本,超过 3 个字符则显示成“…”
+ * 连接 Wi-Fi。
+ * 若已知 Wi-Fi 信息,可以直接利用该接口连接。
+ * 仅 Android 与 iOS 11 以上版本支持。
+ * @version 1.6.0
*/
- text: string;
- }
- // 界面-----设置tabBar
- /**
- * 为 tabBar 某一项的右上角添加文本
- * @version 1.9.0
- */
- function setTabBarBadge(options: SetTabBarBadgeOptions): void;
- interface TabBarBadgeOptions extends BaseOptions {
+ function connectWifi(options?: ConnectWiFiOptions): void;
/**
- * tabBar的哪一项,从左边算起
+ * 请求获取 Wi-Fi 列表
+ * 在 onGetWifiList 注册的回调中返回 wifiList 数据。
+ * iOS 将跳转到系统的 Wi-Fi 界面,Android 不会跳转。
+ * iOS 11.0 及 iOS 11.1 两个版本因系统问题,该方法失效。但在 iOS 11.2 中已修复。
+ * @version 1.6.0
*/
- index: number;
- }
- /**
- * 移除 tabBar 某一项右上角的文本
- * @version 1.9.0
- */
- function removeTabBarBadge(options: TabBarBadgeOptions): void;
- /**
- * 显示 tabBar 某一项的右上角的红点
- * @version 1.9.0
- */
- function showTabBarRedDot(option: TabBarBadgeOptions): void;
- /**
- * 隐藏 tabBar 某一项的右上角的红点
- * @version 1.9.0
- */
- function hideTabBarRedDot(option: TabBarBadgeOptions): void;
- interface SetTabBarStyleOptions extends BaseOptions {
- /** tab 上的文字默认颜色 */
- color: string;
- /** tab 上的文字选中时的颜色 */
- selectedColor: string;
- /** tab 的背景色 */
- backgroundColor: string;
- /** tabbar上边框的颜色, 仅支持 black/white */
- borderStyle: string;
- }
- /**
- * 动态设置 tabBar 的整体样式
- * @version 1.9.0
- */
- function setTabBarStyle(options: SetTabBarStyleOptions): void;
- interface SetTabBarItemOptions extends BaseOptions {
- /** tabBar 的哪一项,从左边算起 */
- index: number;
- /** tab 上按钮文字 */
- text?: string;
+ function getWifiList(options?: BaseOptions): void;
+ interface WiFi {
+ /** Wi-Fi 的SSID */
+ SSID: string;
+ /** Wi-Fi 的BSSID */
+ BSSID: string;
+ /** Wi-Fi 是否安全 */
+ secure: boolean;
+ /** Wi-Fi 信号强度 */
+ signalStrength: number;
+ }
+ interface GetWifiListOptions {
+ /** Wi-Fi 列表数据 */
+ wifiList: WiFi[];
+ }
/**
- * 图片路径, icon 大小限制为40kb
- * 建议尺寸为 81px * 81px
- * 当 postion 为 top 时,此参数无效,不支持网络图片
+ * 监听在获取到 Wi-Fi 列表数据时的事件,在回调中将返回 wifiList。
+ * @version 1.6.0
*/
- iconPath?: string;
+ function onGetWifiList(callback?: (res: GetWifiListOptions) => void): void;
+ interface SetWifiList {
+ /** Wi-Fi 设备ssid */
+ SSID: string;
+ /** Wi-Fi 设备bssid */
+ BSSID: string;
+ /** Wi-Fi 设备密码 */
+ password: string;
+ }
+ interface SetWifiListOptions extends BaseOptions {
+ /** 提供预设的 Wi-Fi 信息列表 */
+ wifiList: SetWifiList[];
+ }
/**
- * 选中时的图片路径
- * icon 大小限制为40kb,建议尺寸为 81px * 81px
- * 当 postion 为 top
+ * iOS特有接口 在 onGetWifiList 回调后,利用接口设置 wifiList 中 AP 的相关信息。
+ * 注意:
+ * + 该接口只能在 onGetWifiList 回调之后才能调用。
+ * + 此时客户端会挂起,等待小程序设置 Wi-Fi 信息,请务必尽快调用该接口,若无数据请传入一个空数组。
+ * + 有可能随着周边 Wi-Fi 列表的刷新,单个流程内收到多次带有存在重复的 Wi-Fi 列表的回调。
+ * @version 1.6.0
*/
- selectedIconPath?: string;
- }
- /**
- * 动态设置 tabBar 某一项的内容
- * @version 1.9.0
- */
- function setTabBarItem(options: SetTabBarItemOptions): void;
- interface ShowTabBarOptions extends BaseOptions {
- /** 是否需要动画效果,默认无 */
- aniamtion?: boolean;
- }
- /**
- * 显示 tabBar
- * @version 1.9.0
- */
- function showTabBar(options: ShowTabBarOptions): void;
- /**
- * 隐藏 tabBar
- * @version 1.9.0
- */
- function hideTabBar(options: ShowTabBarOptions): void;
- // 界面-----导航
- interface NavigateToOptions extends BaseOptions {
- /** 需要跳转的应用内页面的路径 */
- url: string;
- }
- /**
- * 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。
- *
- * 注意:为了不让用户在使用小程序时造成困扰,
- * 我们规定页面路径只能是五层,请尽量避免多层级的交互方式。
- */
- function navigateTo(options: NavigateToOptions): void;
- interface SwitchTabOptions extends BaseOptions {
+ function setWifiList(options: SetWifiListOptions): void;
/**
- * 需要跳转的 tabBar 页面的路径
- * (需在 app.json 的 tabBar 字段定义的页面),路径后不能带参数
+ * 监听连接上 Wi-Fi 的事件。
+ * @version 1.6.0
*/
- url: string;
- }
- /**
- * 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
- */
- function switchTab(options: SwitchTabOptions): void;
- interface RedirectToOptions extends BaseOptions {
- /** 需要跳转的应用内页面的路径 */
- url: string;
- }
- /**
- * 关闭当前页面,跳转到应用内的某个页面。
- */
- function redirectTo(options: RedirectToOptions): void;
- interface NavigateBackOptions {
- /** 返回的页面数,如果 delta 大于现有页面数,则返回到首页。 */
- delta: number;
- }
- /**
- * 关闭当前页面,回退前一页面。
- */
- function navigateBack(options?: NavigateBackOptions): void;
- interface ReLaunchOptions extends BaseOptions {
+ function onWifiConnected(callback?: (wifi: WiFi) => void): void;
+ interface GetConnectedWifiOptions extends BaseOptions {
+ success(wifi: WiFi): void;
+ }
/**
- * 需要跳转的应用内页面路径 , 路径后可以带参数。
- * 参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔
- * 如 'path?key=value&key2=value2',如果跳转的页面路径是 tabBar 页面则不能带参数
+ * 获取已连接中的 Wi-Fi 信息
+ * @version 1.6.0
*/
- url: string;
- }
- /**
- * 关闭所有页面,打开到应用内的某个页面。
- * @version 1.1.0
- */
- function reLaunch(options?: ReLaunchOptions): void;
- // 界面-----动画
- type TimingFunction = 'linear' | 'ease' | 'ease-in' | 'ease-in-out' | 'ease-out' | 'step-start' | 'step-end';
- interface CreateAnimationOptions {
- /** 动画持续时间,单位ms,默认值 400 */
- duration?: number;
- /** 定义动画的效果,默认值"linear",有效值:"linear","ease","ease-in","ease-in-out","ease-out","step-start","step-end" */
- timingFunction?: TimingFunction;
- /** 动画持续时间,单位 ms,默认值 0 */
- delay?: number;
- /** 设置transform-origin,默认为"50% 50% 0" */
- transformOrigin?: string;
- }
- interface Animator {
- actions: AnimationAction[];
- }
- interface AnimationAction {
- animates: Animate[];
- option: AnimationActionOption;
- }
- interface AnimationActionOption {
- transformOrigin: string;
- transition: AnimationTransition;
- }
- interface AnimationTransition {
- delay: number;
- duration: number;
- timingFunction: TimingFunction;
- }
- interface Animate {
- type: string;
- args: any[];
- }
- /**
- * 创建一个动画实例animation。调用实例的方法来描述动画。
- * 最后通过动画实例的export方法导出动画数据传递给组件的animation属性。
- *
- * 注意: export 方法每次调用后会清掉之前的动画操作
- */
- function createAnimation(options?: CreateAnimationOptions): Animation;
- /** 动画实例可以调用以下方法来描述动画,调用结束后会返回自身,支持链式调用的写法。 */
- interface Animation {
+ function getConnectedWifi(options?: GetConnectedWifiOptions): void;
+ // #endregion
+ // #region 界面API列表
+ interface ToastOptions extends BaseOptions {
+ /**
+ * 提示的内容
+ */
+ title: string;
+ /**
+ * 图标,只支持"success"、"loading"
+ */
+ icon?: "success" | "loading";
+ /**
+ * 自定义图标的本地路径,image 的优先级高于 icon
+ */
+ image?: string;
+ /**
+ * 提示的延迟时间,单位毫秒,默认:1500
+ */
+ duration?: number;
+ /**
+ * 是否显示透明蒙层,防止触摸穿透,默认:false
+ */
+ mask?: boolean;
+ }
/**
- * 调用动画操作方法后要调用 step() 来表示一组动画完成,
- * 可以在一组动画中调用任意多个动画方法,
- * 一组动画中的所有动画会同时开始,
- * 一组动画完成后才会进行下一组动画。
- * @param options 指定当前组动画的配置
+ * 显示消息提示框
*/
- step(options?: CreateAnimationOptions): void;
+ function showToast(options: ToastOptions): void;
+ function hideToast(): void;
+ interface LoadingOptions extends BaseOptions {
+ /**
+ * 提示的内容
+ */
+ title: string;
+ /**
+ * 是否显示透明蒙层,防止触摸穿透,默认:false
+ */
+ mask?: boolean;
+ }
/**
- * 导出动画操作
+ * 显示 loading 提示框, 需主动调用 wx.hideLoading 才能关闭提示框
+ */
+ function showLoading(options: LoadingOptions): void;
+ /**
+ * 隐藏消息提示框
+ */
+ function hideLoading(): void;
+ interface ModalOptions extends BaseOptions {
+ /**
+ * 提示的标题
+ */
+ title: string;
+ /**
+ * 提示的内容
+ */
+ content: string;
+ /**
+ * 是否显示取消按钮,默认为 true
+ */
+ showCancel?: boolean;
+ /**
+ * 取消按钮的文字,默认为"取消",最多 4 个字符
+ */
+ cancelText?: string;
+ /**
+ * 取消按钮的文字颜色,默认为"#000000"
+ */
+ cancelColor?: string;
+ /**
+ * 确定按钮的文字,默认为"确定",最多 4 个字符
+ */
+ confirmText?: string;
+ /**
+ * 确定按钮的文字颜色,默认为"#3CC51F"
+ */
+ confirmColor?: string;
+ success?(res: {
+ /**
+ * 为 true 时,表示用户点击了确定按钮
+ */
+ confirm: boolean;
+ /**
+ * 为 true 时,表示用户点击了取消(用于 Android 系统区分点击蒙层关闭还是点击取消按钮关闭)
+ */
+ cancel: boolean;
+ }): void;
+ }
+ /**
+ * 显示模态弹窗
+ */
+ function showModal(options: ModalOptions): void;
+ interface ActionSheetOptions extends BaseOptions {
+ /**
+ * 按钮的文字数组,数组长度最大为6个
+ */
+ itemList: string[];
+ /**
+ * 按钮的文字颜色,默认为"#000000"
+ */
+ itemColor?: string;
+ /**
+ * 接口调用成功的回调函数
+ */
+ success?(res: {
+ /**
+ * 用户点击的按钮,从上到下的顺序,从0开始
+ */
+ tapIndex: number;
+ }): void;
+ }
+ /**
+ * 显示操作菜单
+ */
+ function showActionSheet(options: ActionSheetOptions): void;
+ // 界面-----设置置顶信息
+ interface SetTopBarTextOptions extends BaseOptions {
+ /**
+ * 置顶栏文字内容
+ */
+ text: string;
+ }
+ /**
+ * 动态设置置顶栏文字内容
+ * 只有当前小程序被置顶时能生效,如果当前小程序没有被置顶,也能调用成功,但是不会立即生效
+ * 只有在用户将这个小程序置顶后才换上设置的文字内容。
+ * 注意:调用成功后,需间隔 5s 才能再次调用此接口,如果在 5s 内再次调用此接口,会回调
+ * fail,errMsg:"setTopBarText: fail invoke too frequently"
+ * @version 1.4.3
+ */
+ function setTopBarText(options?: SetTopBarTextOptions): void;
+ // 界面-----设置导航条
+ interface SetNavigationBarTitleOptions extends BaseOptions {
+ /** 页面标题 */
+ title: string;
+ }
+ /**
+ * 动态设置当前页面的标题。
+ * @version 1.4.3
+ */
+ function setNavigationBarTitle(options: SetNavigationBarTitleOptions): void;
+ /**
+ * 在当前页面显示导航条加载动画。
+ * @version 1.4.3
+ */
+ function showNavigationBarLoading(): void;
+ /**
+ * 隐藏导航条加载动画。
+ * @version 1.4.3
+ */
+ function hideNavigationBarLoading(): void;
+ interface SetTabBarBadgeOptions extends BaseOptions {
+ /**
+ * tabBar的哪一项,从左边算起
+ */
+ index: number;
+ /**
+ * 显示的文本,超过 3 个字符则显示成“…”
+ */
+ text: string;
+ }
+ // 界面-----设置tabBar
+ /**
+ * 为 tabBar 某一项的右上角添加文本
+ * @version 1.9.0
+ */
+ function setTabBarBadge(options: SetTabBarBadgeOptions): void;
+ interface TabBarBadgeOptions extends BaseOptions {
+ /**
+ * tabBar的哪一项,从左边算起
+ */
+ index: number;
+ }
+ /**
+ * 移除 tabBar 某一项右上角的文本
+ * @version 1.9.0
+ */
+ function removeTabBarBadge(options: TabBarBadgeOptions): void;
+ /**
+ * 显示 tabBar 某一项的右上角的红点
+ * @version 1.9.0
+ */
+ function showTabBarRedDot(option: TabBarBadgeOptions): void;
+ /**
+ * 隐藏 tabBar 某一项的右上角的红点
+ * @version 1.9.0
+ */
+ function hideTabBarRedDot(option: TabBarBadgeOptions): void;
+ interface SetTabBarStyleOptions extends BaseOptions {
+ /** tab 上的文字默认颜色 */
+ color: string;
+ /** tab 上的文字选中时的颜色 */
+ selectedColor: string;
+ /** tab 的背景色 */
+ backgroundColor: string;
+ /** tabbar上边框的颜色, 仅支持 black/white */
+ borderStyle: string;
+ }
+ /**
+ * 动态设置 tabBar 的整体样式
+ * @version 1.9.0
+ */
+ function setTabBarStyle(options: SetTabBarStyleOptions): void;
+ interface SetTabBarItemOptions extends BaseOptions {
+ /** tabBar 的哪一项,从左边算起 */
+ index: number;
+ /** tab 上按钮文字 */
+ text?: string;
+ /**
+ * 图片路径, icon 大小限制为40kb
+ * 建议尺寸为 81px * 81px
+ * 当 postion 为 top 时,此参数无效,不支持网络图片
+ */
+ iconPath?: string;
+ /**
+ * 选中时的图片路径
+ * icon 大小限制为40kb,建议尺寸为 81px * 81px
+ * 当 postion 为 top
+ */
+ selectedIconPath?: string;
+ }
+ /**
+ * 动态设置 tabBar 某一项的内容
+ * @version 1.9.0
+ */
+ function setTabBarItem(options: SetTabBarItemOptions): void;
+ interface ShowTabBarOptions extends BaseOptions {
+ /** 是否需要动画效果,默认无 */
+ aniamtion?: boolean;
+ }
+ /**
+ * 显示 tabBar
+ * @version 1.9.0
+ */
+ function showTabBar(options: ShowTabBarOptions): void;
+ /**
+ * 隐藏 tabBar
+ * @version 1.9.0
+ */
+ function hideTabBar(options: ShowTabBarOptions): void;
+ // 界面-----导航
+ interface NavigateToOptions extends BaseOptions {
+ /** 需要跳转的应用内页面的路径 */
+ url: string;
+ }
+ /**
+ * 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。
+ *
+ * 注意:为了不让用户在使用小程序时造成困扰,
+ * 我们规定页面路径只能是五层,请尽量避免多层级的交互方式。
+ */
+ function navigateTo(options: NavigateToOptions): void;
+ interface SwitchTabOptions extends BaseOptions {
+ /**
+ * 需要跳转的 tabBar 页面的路径
+ * (需在 app.json 的 tabBar 字段定义的页面),路径后不能带参数
+ */
+ url: string;
+ }
+ /**
+ * 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
+ */
+ function switchTab(options: SwitchTabOptions): void;
+ interface RedirectToOptions extends BaseOptions {
+ /** 需要跳转的应用内页面的路径 */
+ url: string;
+ }
+ /**
+ * 关闭当前页面,跳转到应用内的某个页面。
+ */
+ function redirectTo(options: RedirectToOptions): void;
+ interface NavigateBackOptions {
+ /** 返回的页面数,如果 delta 大于现有页面数,则返回到首页。 */
+ delta: number;
+ }
+ /**
+ * 关闭当前页面,回退前一页面。
+ */
+ function navigateBack(options?: NavigateBackOptions): void;
+ interface ReLaunchOptions extends BaseOptions {
+ /**
+ * 需要跳转的应用内页面路径 , 路径后可以带参数。
+ * 参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔
+ * 如 'path?key=value&key2=value2',如果跳转的页面路径是 tabBar 页面则不能带参数
+ */
+ url: string;
+ }
+ /**
+ * 关闭所有页面,打开到应用内的某个页面。
+ * @version 1.1.0
+ */
+ function reLaunch(options?: ReLaunchOptions): void;
+ // 界面-----动画
+ type TimingFunction =
+ | "linear"
+ | "ease"
+ | "ease-in"
+ | "ease-in-out"
+ | "ease-out"
+ | "step-start"
+ | "step-end";
+ interface CreateAnimationOptions {
+ /** 动画持续时间,单位ms,默认值 400 */
+ duration?: number;
+ /** 定义动画的效果,默认值"linear",有效值:"linear","ease","ease-in","ease-in-out","ease-out","step-start","step-end" */
+ timingFunction?: TimingFunction;
+ /** 动画持续时间,单位 ms,默认值 0 */
+ delay?: number;
+ /** 设置transform-origin,默认为"50% 50% 0" */
+ transformOrigin?: string;
+ }
+ interface Animator {
+ actions: AnimationAction[];
+ }
+ interface AnimationAction {
+ animates: Animate[];
+ option: AnimationActionOption;
+ }
+ interface AnimationActionOption {
+ transformOrigin: string;
+ transition: AnimationTransition;
+ }
+ interface AnimationTransition {
+ delay: number;
+ duration: number;
+ timingFunction: TimingFunction;
+ }
+ interface Animate {
+ type: string;
+ args: any[];
+ }
+ /**
+ * 创建一个动画实例animation。调用实例的方法来描述动画。
+ * 最后通过动画实例的export方法导出动画数据传递给组件的animation属性。
*
* 注意: export 方法每次调用后会清掉之前的动画操作
*/
- export(): Animator;
- /** 透明度,参数范围 0~1 */
- opacity(value: number): Animation;
- /** 颜色值 */
- backgroundColor(color: string): Animation;
- /** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
- width(length: number): Animation;
- /** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
- height(length: number): Animation;
- /** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
- top(length: number): Animation;
- /** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
- left(length: number): Animation;
- /** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
- bottom(length: number): Animation;
- /** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
- right(length: number): Animation;
- /** deg的范围-180~180,从原点顺时针旋转一个deg角度 */
- rotate(deg: number): Animation;
- /** deg的范围-180~180,在X轴旋转一个deg角度 */
- rotateX(deg: number): Animation;
- /** deg的范围-180~180,在Y轴旋转一个deg角度 */
- rotateY(deg: number): Animation;
- /** deg的范围-180~180,在Z轴旋转一个deg角度 */
- rotateZ(deg: number): Animation;
- /** 同transform-function rotate3d */
- rotate3d(x: number, y: number, z: number, deg: number): Animation;
+ function createAnimation(options?: CreateAnimationOptions): Animation;
+ /** 动画实例可以调用以下方法来描述动画,调用结束后会返回自身,支持链式调用的写法。 */
+ interface Animation {
+ /**
+ * 调用动画操作方法后要调用 step() 来表示一组动画完成,
+ * 可以在一组动画中调用任意多个动画方法,
+ * 一组动画中的所有动画会同时开始,
+ * 一组动画完成后才会进行下一组动画。
+ * @param options 指定当前组动画的配置
+ */
+ step(options?: CreateAnimationOptions): void;
+ /**
+ * 导出动画操作
+ *
+ * 注意: export 方法每次调用后会清掉之前的动画操作
+ */
+ export(): Animator;
+ /** 透明度,参数范围 0~1 */
+ opacity(value: number): Animation;
+ /** 颜色值 */
+ backgroundColor(color: string): Animation;
+ /** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
+ width(length: number): Animation;
+ /** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
+ height(length: number): Animation;
+ /** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
+ top(length: number): Animation;
+ /** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
+ left(length: number): Animation;
+ /** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
+ bottom(length: number): Animation;
+ /** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
+ right(length: number): Animation;
+ /** deg的范围-180~180,从原点顺时针旋转一个deg角度 */
+ rotate(deg: number): Animation;
+ /** deg的范围-180~180,在X轴旋转一个deg角度 */
+ rotateX(deg: number): Animation;
+ /** deg的范围-180~180,在Y轴旋转一个deg角度 */
+ rotateY(deg: number): Animation;
+ /** deg的范围-180~180,在Z轴旋转一个deg角度 */
+ rotateZ(deg: number): Animation;
+ /** 同transform-function rotate3d */
+ rotate3d(x: number, y: number, z: number, deg: number): Animation;
+ /**
+ * 一个参数时,表示在X轴、Y轴同时缩放sx倍数;
+ * 两个参数时表示在X轴缩放sx倍数,在Y轴缩放sy倍数
+ */
+ scale(sx: number, sy?: number): Animation;
+ /** 在X轴缩放sx倍数 */
+ scaleX(sx: number): Animation;
+ /** 在Y轴缩放sy倍数 */
+ scaleY(sy: number): Animation;
+ /** 在Z轴缩放sy倍数 */
+ scaleZ(sz: number): Animation;
+ /** 在X轴缩放sx倍数,在Y轴缩放sy倍数,在Z轴缩放sz倍数 */
+ scale3d(sx: number, sy: number, sz: number): Animation;
+ /**
+ * 一个参数时,表示在X轴偏移tx,单位px;
+ * 两个参数时,表示在X轴偏移tx,在Y轴偏移ty,单位px。
+ */
+ translate(tx: number, ty?: number): Animation;
+ /**
+ * 在X轴偏移tx,单位px
+ */
+ translateX(tx: number): Animation;
+ /**
+ * 在Y轴偏移tx,单位px
+ */
+ translateY(ty: number): Animation;
+ /**
+ * 在Z轴偏移tx,单位px
+ */
+ translateZ(tz: number): Animation;
+ /**
+ * 在X轴偏移tx,在Y轴偏移ty,在Z轴偏移tz,单位px
+ */
+ translate3d(tx: number, ty: number, tz: number): Animation;
+ /**
+ * 参数范围-180~180;
+ * 一个参数时,Y轴坐标不变,X轴坐标延顺时针倾斜ax度;
+ * 两个参数时,分别在X轴倾斜ax度,在Y轴倾斜ay度
+ */
+ skew(ax: number, ay?: number): Animation;
+ /** 参数范围-180~180;Y轴坐标不变,X轴坐标延顺时针倾斜ax度 */
+ skewX(ax: number): Animation;
+ /** 参数范围-180~180;X轴坐标不变,Y轴坐标延顺时针倾斜ay度 */
+ skewY(ay: number): Animation;
+ /**
+ * 同transform-function matrix
+ */
+ matrix(
+ a: number,
+ b: number,
+ c: number,
+ d: number,
+ tx: number,
+ ty: number
+ ): Animation;
+ /** 同transform-function matrix3d */
+ matrix3d(
+ a1: number,
+ b1: number,
+ c1: number,
+ d1: number,
+ a2: number,
+ b2: number,
+ c2: number,
+ d2: number,
+ a3: number,
+ b3: number,
+ c3: number,
+ d3: number,
+ a4: number,
+ b4: number,
+ c4: number,
+ d4: number
+ ): Animation;
+ }
+ // #region 位置API
+ interface PageScrollToOptions {
+ /** 滚动到页面的目标位置(单位px */
+ scrollTop: number;
+ /** 滚动动画的时长,默认300ms,单位 ms */
+ duration?: number;
+ }
+ function pageScrollTo(options: PageScrollToOptions): void;
/**
- * 一个参数时,表示在X轴、Y轴同时缩放sx倍数;
- * 两个参数时表示在X轴缩放sx倍数,在Y轴缩放sy倍数
+ * 返回一个SelectorQuery对象实例。
+ * 可以在这个实例上使用select等方法选择节点,并使用boundingClientRect等方法选择需要查询的信息。
+ * @version 1.4.0
*/
- scale(sx: number, sy?: number): Animation;
- /** 在X轴缩放sx倍数 */
- scaleX(sx: number): Animation;
- /** 在Y轴缩放sy倍数 */
- scaleY(sy: number): Animation;
- /** 在Z轴缩放sy倍数 */
- scaleZ(sz: number): Animation;
- /** 在X轴缩放sx倍数,在Y轴缩放sy倍数,在Z轴缩放sz倍数 */
- scale3d(sx: number, sy: number, sz: number): Animation;
+ function createSelectorQuery(): SelectorQuery;
+ interface NodesRefRect {
+ /** 节点的ID */
+ id: string;
+ /** 节点的dataset */
+ dataset: any;
+ /** 节点的左边界坐标 */
+ left: number;
+ /** 节点的右边界坐标 */
+ right: number;
+ /** 节点的上边界坐标 */
+ top: number;
+ /** 节点的下边界坐标 */
+ bottom: number;
+ /** 节点的宽度 */
+ width: number;
+ /** 节点的高度 */
+ height: number;
+ }
+ interface NodeRefOffset {
+ /** 节点的ID */
+ id: string;
+ /** 节点的dataset */
+ dataset: any;
+ /** 节点的水平滚动位置 */
+ scrollLeft: number;
+ /** 节点的竖直滚动位置 */
+ scrollTop: number;
+ }
+ interface NodeRefFieldsOptions {
+ /** 是否返回节点id */
+ id?: true;
+ /** 是否返回节点dataset */
+ dataset?: true;
+ /** 是否返回节点布局位置(left right top bottom */
+ rect?: true;
+ /** 是否返回节点尺寸(width height) */
+ size?: true;
+ /** 是否返回节点的 scrollLeft scrollTop ,节点必须是scroll-view或者viewport */
+ scrollOffset?: true;
+ /**
+ * 指定属性名列表
+ * 返回节点对应属性名的当前属性值(只能获得组件文档中标注的常规属性值, id class style 和事件绑定的属性值不可获取
+ */
+ properties?: string[];
+ }
+ interface NodeRefFieldsValue {
+ id: {
+ id: boolean;
+ };
+ dataset: {
+ dataset: string;
+ };
+ rect: {
+ left: number;
+ right: number;
+ top: number;
+ bottom: number;
+ };
+ size: {
+ width: number;
+ height: number;
+ };
+ scrollOffset: {
+ scrollLeft: number;
+ scrollTop: number;
+ };
+ properties: {
+ properties: any;
+ };
+ }
+ interface NodesRef {
+ /**
+ * 添加节点的布局位置的查询请求,相对于显示区域,以像素为单位。
+ * 其功能类似于DOM的getBoundingClientRect。
+ * 返回值是nodesRef对应的selectorQuery。
+ * 返回的节点信息中,每个节点的位置用
+ * left、right、top、bottom、width、height字段描述。
+ * 如果提供了callback回调函数,在执行selectQuery的exec方法后
+ * 节点信息会在callback中返回。
+ */
+ boundingClientRect(
+ callback?: (rect: T) => void
+ ): SelectorQuery;
+ /**
+ * 添加节点的滚动位置查询请求,以像素为单位。
+ * 节点必须是scroll-view或者viewport。
+ * 返回值是nodesRef对应的selectorQuery。
+ * 返回的节点信息中,每个节点的滚动位置用scrollLeft、scrollHeight字段描述。
+ * 如果提供了callback回调函数,在执行selectQuery的exec方法后,节点信息会在callback中返回。
+ */
+ scrollOffset(callback?: (rect: NodeRefOffset) => void): SelectorQuery;
+ /**
+ * 获取节点的相关信息,需要获取的字段在fields中指定。
+ * 返回值是nodesRef对应的selectorQuery。
+ */
+ fields(
+ fields: NodeRefFieldsOptions,
+ callback?: (result: any) => void
+ ): SelectorQuery;
+ }
/**
- * 一个参数时,表示在X轴偏移tx,单位px;
- * 两个参数时,表示在X轴偏移tx,在Y轴偏移ty,单位px。
+ * SelectorQuery对象实例
*/
- translate(tx: number, ty?: number): Animation;
+ interface SelectorQuery {
+ /**
+ * 将选择器的选取范围更改为自定义组件component内
+ * (初始时,选择器仅选取页面范围的节点,不会选取任何自定义组件中的节点
+ * @version 1.6.0
+ */
+ in(component: Component