// Type definitions for weapp
// Project: https://mp.weixin.qq.com/debug/wxadoc/dev/index.html
// Definitions by: vargeek
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
declare namespace wx {
type NoneParamCallback = () => void;
type OneParamCallback = (data: any) => void;
type ResponseCallback = (res: any) => void;
type DataResponseCallback = (res: DataResponse) => void;
type TempFileResponseCallback = (res: TempFileResponse) => void;
type ErrorCallback = (error: any) => void;
type EventCallback = (event: any) => void;
interface DataResponse {
/** 回调函数返回的内容 */
data: any;
}
interface TempFileResponse {
/** 文件的临时路径 */
tempFilePath: string;
}
interface PageOptions {
/** 页面的初始数据 */
data?: any;
/** 生命周期函数--监听页面加载 */
onLoad?: (options: any) => void;
/** 生命周期函数--监听页面渲染完成 */
onReady?: NoneParamCallback;
/** 生命周期函数--监听页面显示 */
onShow?: NoneParamCallback;
/** 生命周期函数--监听页面隐藏 */
onHide?: NoneParamCallback;
/** 生命周期函数--监听页面卸载 */
onUnload?: NoneParamCallback;
[key: string]: any;
}
interface AppOptions {
/**
* 生命周期函数--监听小程序初始化
* 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
*/
onLaunch?: NoneParamCallback;
/**
* 生命周期函数--监听小程序显示
* 当小程序启动,或从后台进入前台显示,会触发 onShow
*/
onShow?: NoneParamCallback;
/**
* 生命周期函数--监听小程序隐藏
* 当小程序从前台进入后台,会触发 onHide
*/
onHide?: NoneParamCallback;
[key: string]: any
}
interface RequestHeader {
[key: string]: string;
}
interface RequestOptions {
/** 开发者服务器接口地址 */
url: string;
/** 请求的参数 */
data?: string | any;
/** 设置请求的 header , header 中不能设置 Referer */
header?: RequestHeader;
/** 默认为 GET,有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT */
method?: string;
/** 收到开发者服务成功返回的回调函数,res = {data: '开发者服务器返回的内容'} */
success?: DataResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* wx.request发起的是https请求。一个微信小程序,同时只能有5个网络请求连接。
*/
function request(options: RequestOptions): void;
interface UploadFileOptions {
/** 开发者服务器 url */
url: string;
/** 要上传文件资源的路径 */
filePath: string;
/** 文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容 */
name: string;
/** HTTP 请求 Header , header 中不能设置 Referer */
header?: RequestHeader;
/** HTTP 请求中其他额外的 form data */
formData?: any;
/** 接口调用成功的回调函数 */
success?: ResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 将本地资源上传到开发者服务器。
* 如页面通过 wx.chooseImage 等接口获取到一个本地资源的临时文件路径后,
* 可通过此接口将本地资源上传到指定服务器。
* 客户端发起一个 HTTPS POST 请求,
* 其中 Content-Type 为 multipart/form-data 。
*/
function uploadFile(options: UploadFileOptions): void;
interface DownloadFileOptions {
/** 下载资源的 url */
url: string;
/** 下载资源的类型,用于客户端识别处理,有效值:image/audio/video */
type?: string;
/** HTTP 请求 Header */
header?: RequestHeader;
/** 下载成功后以 tempFilePath 的形式传给页面,res = {tempFilePath: '文件的临时路径'} */
success?: TempFileResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 下载文件资源到本地。客户端直接发起一个 HTTP GET 请求,
* 把下载到的资源根据 type 进行处理,并返回文件的本地临时路径。
*/
function downloadFile(options: DownloadFileOptions): void;
interface ConnectSocketOptions {
/** 开发者服务器接口地址,必须是 HTTPS 协议,且域名必须是后台配置的合法域名 */
url: string;
/** 请求的数据 */
data?: any;
/** HTTP Header , header 中不能设置 Referer */
header?: RequestHeader;
/** 默认是GET,有效值为: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT */
method?: string;
/** 接口调用成功的回调函数 */
success?: ResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 创建一个 WebSocket 连接;
* 一个微信小程序同时只能有一个 WebSocket 连接,
* 如果当前已存在一个 WebSocket 连接,
* 会自动关闭该连接,并重新创建一个 WebSocket 连接。
*/
function connectSocket(options: ConnectSocketOptions): void;
/** 监听WebSocket连接打开事件。 */
function onSocketOpen(callback: OneParamCallback): void;
/** 监听WebSocket错误。 */
function onSocketError(callback: ErrorCallback): void;
interface SendSocketMessageOptions {
/** 需要发送的内容 */
data: string;
/** 接口调用成功的回调函数 */
success?: ResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 通过 WebSocket 连接发送数据,需要先 wx.connectSocket,
* 并在 wx.onSocketOpen 回调之后才能发送。
*/
function sendSocketMessage(options: SendSocketMessageOptions): void;
/**
* 监听WebSocket接受到服务器的消息事件。
*/
function onSocketMessage(callback: DataResponseCallback): void;
/**
* 关闭WebSocket连接。
*/
function closeSocket(): void;
/** 监听WebSocket关闭。 */
function onSocketClose(callback: ResponseCallback): void;
type ImageSizeType = 'original' | 'compressed';
type ImageSourceType = 'album' | 'camera';
type VideoSourceType = 'album' | 'camera';
type CameraDevice = 'front' | 'back';
interface TempFilesData {
/** 文件的临时路径 */
tempFilePaths: string;
}
interface ChooseImageOptions {
/** 最多可以选择的图片张数,默认9 */
count?: number;
/** original 原图,compressed 压缩图,默认二者都有 */
sizeType?: Array;
/** album 从相册选图,camera 使用相机,默认二者都有 */
sourceType?: Array;
/** 成功则返回图片的本地文件路径列表 tempFilePaths */
success: (res: TempFilesData) => void;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 从本地相册选择图片或使用相机拍照。
*/
function chooseImage(options: ChooseImageOptions): void;
interface PreviewImageOptions {
/** 当前显示图片的链接,不填则默认为 urls 的第一张 */
current?: string;
/** 需要预览的图片链接列表 */
urls: Array;
/** 接口调用成功的回调函数 */
success?: ResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 预览图片。
*/
function previewImage(options: PreviewImageOptions): void;
interface StartRecordOptions {
/** 录音成功后调用,返回录音文件的临时文件路径,res = {tempFilePath: '录音文件的临时路径'} */
success?: TempFileResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 开始录音。当主动调用wx.stopRecord,
* 或者录音超过1分钟时自动结束录音,返回录音文件的临时文件路径。
* 注:文件的临时路径,在小程序本次启动期间可以正常使用,
* 如需持久保存,需在主动调用wx.saveFile,在小程序下次启动时才能访问得到。
*/
function startRecord(options: StartRecordOptions): void;
/**
* 主动调用停止录音。
*/
function stopRecord(): void;
interface PlayVoiceOptions {
/** 需要播放的语音文件的文件路径 */
filePath: string;
/** 接口调用成功的回调函数 */
success?: ResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 开始播放语音,同时只允许一个语音文件正在播放,
* 如果前一个语音文件还没播放完,将中断前一个语音播放。
*/
function playVoice(options: PlayVoiceOptions): void;
/**
* 暂停正在播放的语音。
* 再次调用wx.playVoice播放同一个文件时,会从暂停处开始播放。
* 如果想从头开始播放,需要先调用 wx.stopVoice。
*/
function pauseVoice(): void;
/**
* 结束播放语音。
*/
function stopVoice(): void;
interface BackgroundAudioPlayerState {
/** 选定音频的长度(单位:s),只有在当前有音乐播放时返回 */
duration?: number;
/** 选定音频的播放位置(单位:s),只有在当前有音乐播放时返回 */
currentPosition?: number;
/** 播放状态(2:没有音乐在播放,1:播放中,0:暂停中) */
status: number;
/** 音频的下载进度(整数,80 代表 80%),只有在当前有音乐播放时返回 */
downloadPercent?: number;
/** 歌曲数据链接,只有在当前有音乐播放时返回 */
dataUrl?: string;
}
type GetBackgroundAudioPlayerStateSuccessCallback = (state: BackgroundAudioPlayerState) => void;
interface GetBackgroundAudioPlayerStateOptions {
/** 接口调用成功的回调函数 */
success?: GetBackgroundAudioPlayerStateSuccessCallback;
/** 接口调用失败的回调函数 */
fail?: NoneParamCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: NoneParamCallback;
}
/** 获取音乐播放状态。 */
function getBackgroundAudioPlayerState(options: GetBackgroundAudioPlayerStateOptions): void;
interface PlayBackgroundAudioOptions {
/** 音乐链接 */
dataUrl: string;
/** 音乐标题 */
title?: string;
/** 封面URL */
coverImgUrl?: string;
/** 接口调用成功的回调函数 */
success?: ResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/** 播放音乐,同时只能有一首音乐正在播放。 */
function playBackgroundAudio(options: PlayBackgroundAudioOptions): void;
/** 暂停播放音乐。 */
function pauseBackgroundAudio(): void;
interface SeekBackgroundAudioOptions {
/** 音乐位置,单位:秒 */
position: number;
/** 接口调用成功的回调函数 */
success?: ResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 控制音乐播放进度。
*/
function seekBackgroundAudio(options: SeekBackgroundAudioOptions): void;
/**
* 停止播放音乐。
*/
function stopBackgroundAudio(): void;
/** 监听音乐播放。 */
function onBackgroundAudioPlay(callback: NoneParamCallback): void;
/** 监听音乐暂停。 */
function onBackgroundAudioPause(callback: NoneParamCallback): void;
/** 监听音乐停止。 */
function onBackgroundAudioStop(callback: NoneParamCallback): void;
interface SavedFileData {
/** 文件的保存路径 */
savedFilePath: string;
}
interface SaveFileOptions {
/** 需要保存的文件的临时路径 */
tempFilePath: string;
/** 返回文件的保存路径,res = {savedFilePath: '文件的保存路径'} */
success?: (res: SavedFileData) => void;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 保存文件到本地。
*/
function saveFile(options: SaveFileOptions): void;
interface VideoData {
/** 选定视频的临时文件路径 */
tempFilePath: string;
/** 选定视频的时间长度 */
duration: number;
/** 选定视频的数据量大小 */
size: number;
/** 返回选定视频的长 */
height: number;
/** 返回选定视频的宽 */
width: number;
}
interface ChooseVideoOptions {
/** album 从相册选视频,camera 使用相机拍摄,默认为:['album', 'camera'] */
sourceType?: Array;
/** 拍摄视频最长拍摄时间,单位秒。最长支持60秒 */
maxDuration?: number;
/** 前置或者后置摄像头,默认为前后都有,即:['front', 'back'] */
camera?: Array;
/** 接口调用成功,返回视频文件的临时文件路径,详见返回参数说明 */
success?: (res: VideoData) => void;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 拍摄视频或从手机相册中选视频,返回视频的临时文件路径。
*/
function chooseVideo(options: ChooseVideoOptions): void;
interface SetStorageOptions {
/** 本地缓存中的指定的 key */
key: string;
/** 需要存储的内容 */
data: any | string;
/** 接口调用成功的回调函数 */
success?: ResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 将数据存储在本地缓存中指定的 key 中,
* 会覆盖掉原来该 key 对应的内容,这是一个异步接口。
*/
function setStorage(options: SetStorageOptions): void;
/**
* 将 data 存储在本地缓存中指定的 key 中,
* 会覆盖掉原来该 key 对应的内容,这是一个同步接口。
*
* @param {string} key 本地缓存中的指定的 key
* @param {(Object | string)} data 需要存储的内容
*/
function setStorageSync(key: string, data: any | string): void;
interface GetStorageOptions {
/** 本地缓存中的指定的 key */
key: string;
/** 接口调用的回调函数,res = {data: key对应的内容} */
success: DataResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 从本地缓存中异步获取指定 key 对应的内容。
*/
function getStorage(options: GetStorageOptions): void;
/**
* 从本地缓存中同步获取指定 key 对应的内容。
*
* @param {string} key
* @returns {(Object | string)}
*/
function getStorageSync(key: string): any | string;
/**
* 清理本地数据缓存。
*/
function clearStorage(): void;
/**
* 同步清理本地数据缓存
*/
function clearStorageSync(): void;
interface LocationData {
/** 纬度,浮点数,范围为-90~90,负数表示南纬 */
latitude: number;
/** 经度,浮点数,范围为-180~180,负数表示西经 */
longitude: number;
/** 速度,浮点数,单位m/s */
speed: number;
/** 位置的精确度 */
accuracy: number;
}
interface GetLocationOptions {
/** 默认为 wgs84 返回 gps 坐标,gcj02 返回可用于wx.openLocation的坐标 */
type?: 'wgs84' | 'gcj02';
/** 接口调用成功的回调函数,返回内容详见返回参数说明。 */
success: (res: LocationData) => void;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 获取当前的地理位置、速度。
*/
function getLocation(options: GetLocationOptions): void;
interface OpenLocationOptions {
/** 纬度,范围为-90~90,负数表示南纬 */
latitude: number;
/** 经度,范围为-180~180,负数表示西经 */
longitude: number;
/** 缩放比例,范围1~28,默认为28 */
scale?: number;
/** 位置名 */
name?: string;
/** 地址的详细说明 */
address?: string;
/** 接口调用成功的回调函数 */
success?: ResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 使用微信内置地图查看位置
*/
function openLocation(options: OpenLocationOptions): void;
interface NetworkTypeData {
/** 返回网络类型2g,3g,4g,wifi */
networkType: '2g' | '3g' | '4g' | 'wifi';
}
interface GetNetworkTypeOptions {
/** 接口调用成功,返回网络类型 networkType */
success: (res: NetworkTypeData) => void;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 获取网络类型。
*/
function getNetworkType(options: GetNetworkTypeOptions): void;
interface SystemInfo {
/** 手机型号 */
model: string;
/** 设备像素比 */
pixelRatio: number;
/** 窗口宽度 */
windowWidth: number;
/** 窗口高度 */
windowHeight: number;
/** 微信设置的语言 */
language: string;
/** 微信版本号 */
version: string;
}
interface GetSystemInfoOptions {
/** 成功获取系统信息的回调 */
success: (res: SystemInfo) => void;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 获取系统信息。
*/
function getSystemInfo(options: GetSystemInfoOptions): void;
interface AccelerometerData {
/** X 轴 */
x: number;
/** Y 轴 */
y: number;
/** Z 轴 */
z: number;
}
type AccelerometerChangeCallback = (res: AccelerometerData) => void;
/**
* 监听重力感应数据,频率:5次/秒
*/
function onAccelerometerChange(callback: AccelerometerChangeCallback): void;
interface CompassData {
/** 面对的方向度数 */
direction: number;
}
type CompassChangeCallback = (res: CompassData) => void;
function onCompassChange(callback: CompassChangeCallback): void;
interface SetNavigationBarTitleOptions {
/** 页面标题 */
title?: string;
/** 成功获取系统信息的回调 */
success?: ResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 动态设置当前页面的标题。
*/
function setNavigationBarTitle(options: SetNavigationBarTitleOptions): void;
/**
* 在当前页面显示导航条加载动画。
*/
function showNavigationBarLoading(): void;
/**
* 隐藏导航条加载动画。
*/
function hideNavigationBarLoading(): void;
interface NavigateToOptions {
/** 需要跳转的应用内页面的路径 */
url: string;
/** 成功获取系统信息的回调 */
success?: ResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。
*
* 注意:为了不让用户在使用小程序时造成困扰,
* 我们规定页面路径只能是五层,请尽量避免多层级的交互方式。
*/
function navigateTo(options: NavigateToOptions): void;
interface RedirectToOptions {
/** 需要跳转的应用内页面的路径 */
url: string;
/** 成功获取系统信息的回调 */
success?: ResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 关闭当前页面,跳转到应用内的某个页面。
*/
function redirectTo(options: RedirectToOptions): void;
/**
* 关闭当前页面,回退前一页面。
*/
function navigateBack(): 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: Array;
}
interface AnimationAction {
animates: Array;
option: AnimationActionOption;
}
interface AnimationActionOption {
transformOrigin: string;
transition: AnimationTransition;
}
interface AnimationTransition {
delay: number;
duration: number;
timingFunction: TimingFunction;
}
interface Animate {
type: string;
args: Array;
}
/**
* 创建一个动画实例animation。调用实例的方法来描述动画。
* 最后通过动画实例的export方法导出动画数据传递给组件的animation属性。
*
* 注意: export 方法每次调用后会清掉之前的动画操作
*/
function createAnimation(options?: CreateAnimationOptions): Animation;
/** 动画实例可以调用以下方法来描述动画,调用结束后会返回自身,支持链式调用的写法。 */
interface Animation {
/**
* 调用动画操作方法后要调用 step() 来表示一组动画完成,
* 可以在一组动画中调用任意多个动画方法,
* 一组动画中的所有动画会同时开始,
* 一组动画完成后才会进行下一组动画。
* @param {CreateAnimationOptions} 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;
}
interface CanvasAction {
method: string;
data: Array | Array
}
type LineCapType = 'butt' | 'round' | 'square';
type LineJoinType = 'bevel' | 'round' | 'miter';
/**
* context只是一个记录方法调用的容器,用于生成记录绘制行为的actions数组。context跟不存在对应关系,一个context生成画布的绘制动作数组可以应用于多个。
*/
interface CanvasContext {
/** 获取当前context上存储的绘图动作 */
getActions(): Array
/** 清空当前的存储绘图动作 */
clearActions(): void;
/**
* 对横纵坐标进行缩放
* 在调用scale方法后,之后创建的路径其横纵坐标会被缩放。
* 多次调用scale,倍数会相乘。
*
* @param {number} scaleWidth 横坐标缩放的倍数
* @param {number} scaleHeight 纵坐标轴缩放的倍数
*/
scale(scaleWidth: number, scaleHeight?: number): void;
/**
* 对坐标轴进行顺时针旋转
* 以原点为中心,原点可以用 translate方法修改。
* 顺时针旋转当前坐标轴。多次调用rotate,旋转的角度会叠加。
*
* @param {number} rotate 旋转角度,以弧度计。
*/
rotate(rotate: number): void;
/**
* 对坐标原点进行缩放
* 对当前坐标系的原点(0, 0)进行变换,默认的坐标系原点为页面左上角。
*
* @param {number} x 水平坐标平移量
* @param {number} y 竖直坐标平移量
*/
translate(x: number, y: number): void;
/**
* 保存当前坐标轴的缩放、旋转、平移信息
*/
save(): void;
/**
* 恢复之前保存过的坐标轴的缩放、旋转、平移信息
*/
restore(): void;
/**
* 在给定的矩形区域内,清除画布上的像素
* 清除画布上在该矩形区域内的内容。
*
* @param {number} x 矩形区域左上角的x坐标
* @param {number} y 矩形区域左上角的y坐标
* @param {number} width 矩形区域的宽度
* @param {number} height 矩形区域的高度
*/
clearRect(x: number, y: number, width: number, height: number): void;
/**
* 在画布上绘制被填充的文本
*
* @param {string} text 在画布上输出的文本
* @param {number} x 绘制文本的左上角x坐标位置
* @param {number} y 绘制文本的左上角y坐标位置
*/
fillText(text: string, x: number, y: number): void;
/**
* 在画布上绘制图像
* 绘制图像,图像保持原始尺寸。
*
* @param {string} imageResource 所要绘制的图片资源。 通过chooseImage得到一个文件路径或者一个项目目录内的图片
* @param {number} x 图像左上角的x坐标
* @param {number} y 图像左上角的y坐标
*/
drawImage(imageResource: string, x: number, y: number): void;
/**
* 对当前路径进行填充
*/
fill(): void;
/**
* 对当前路径进行描边
*/
stroke(): void;
/**
* 开始一个路径
* 开始创建一个路径,需要调用fill或者stroke才会使用路径进行填充或描边。
* 同一个路径内的多次setFillStyle、setStrokeStyle、setLineWidth等设置,
* 以最后一次设置为准。
*/
beginPath(): void;
/**
* 关闭一个路径
*/
closePath(): void;
/**
* 把路径移动到画布中的指定点,但不创建线条。
*
* @param {number} x 目标位置的x坐标
* @param {number} y 目标位置的y坐标
*/
moveTo(x: number, y: number): void;
/**
* 在当前位置添加一个新点,然后在画布中创建从该点到最后指定点的路径。
*
* @param {number} x 目标位置的x坐标
* @param {number} y 目标位置的y坐标
*/
lineTo(x: number, y: number): void;
/**
* 添加一个矩形路径到当前路径。
*
* @param {number} x 矩形路径左上角的x坐标
* @param {number} y 矩形路径左上角的y坐标
* @param {number} width 矩形路径的宽度
* @param {number} height 矩形路径的高度
*/
rect(x: number, y: number, width: number, height: number): void;
/**
* 添加一个弧形路径到当前路径,顺时针绘制。
*
* @param {number} x 矩形路径左上角的x坐标
* @param {number} y 矩形路径左上角的y坐标
* @param {number} radius 矩形路径左上角的y坐标
* @param {number} startAngle 起始弧度
* @param {number} endAngle 结束弧度
* @param {boolean} sweepAngle 从起始弧度开始,扫过的弧度
*/
arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, sweepAngle: boolean): void;
/**
* 创建二次方贝塞尔曲线
*
* @param {number} cpx 贝塞尔控制点的x坐标
* @param {number} cpy 贝塞尔控制点的y坐标
* @param {number} x 结束点的x坐标
* @param {number} y 结束点的y坐标
*/
quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
/**
* 创建三次方贝塞尔曲线
*
* @param {number} cp1x 第一个贝塞尔控制点的 x 坐标
* @param {number} cp1y 第一个贝塞尔控制点的 y 坐标
* @param {number} cp2x 第二个贝塞尔控制点的 x 坐标
* @param {number} cp2y 第二个贝塞尔控制点的 y 坐标
* @param {number} x 结束点的x坐标
* @param {number} y 结束点的y坐标
*/
bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
/**
* 设置填充样式
*
* @param {string} color 设置为填充样式的颜色。'rgb(255, 0, 0)'或'rgba(255, 0, 0, 0.6)'或'#ff0000'格式的颜色字符串
*/
setFillStyle(color: string): void;
/**
* 设置线条样式
*
* @param {string} color 设置为填充样式的颜色。'rgb(255, 0, 0)'或'rgba(255, 0, 0, 0.6)'或'#ff0000'格式的颜色字符串
*/
setStrokeStyle(color: string): void;
/**
* 设置阴影
*
* @param {number} offsetX 阴影相对于形状在水平方向的偏移
* @param {number} offsetY 阴影相对于形状在竖直方向的偏移
* @param {number} blur 阴影的模糊级别,数值越大越模糊 0~100
* @param {string} color 阴影的颜色。 'rgb(255, 0, 0)'或'rgba(255, 0, 0, 0.6)'或'#ff0000'格式的颜色字符串
*/
setShadow(offsetX: number, offsetY: number, blur: number, color: string): void;
/**
* 设置字体大小
*
* @param {number} fontSize 字体的字号
*/
setFontSize(fontSize: number): void;
/**
* 设置线条端点的样式
*
* @param {LineCapType} lineCap 线条的结束端点样式。 'butt'、'round'、'square'
*/
setLineCap(lineCap: LineCapType): void;
/**
* 设置两线相交处的样式
* @param {LineJoinType} lineJoin 两条线相交时,所创建的拐角类型
*/
setLineJoin(lineJoin: LineJoinType): void;
/**
* 设置线条宽度
*
* @param {number} lineWidth 线条的宽度
*/
setLineWidth(lineWidth: number): void;
/** 设置最大斜接长度,斜接长度指的是在两条线交汇处内角和外角之间的距离。
* 当 setLineJoin为 miter 时才有效。
* 超过最大倾斜长度的,连接处将以 lineJoin 为 bevel 来显示
*
* @param {number} miterLimit 最大斜接长度
*/
setMiterLimit(miterLimit: number): void;
}
/**
* 创建并返回绘图上下文context对象。
* context只是一个记录方法调用的容器,
* 用于生成记录绘制行为的actions数组。c
* ontext跟不存在对应关系,
* 一个context生成画布的绘制动作数组可以应用于多个。
*/
function createContext(): CanvasContext;
interface DrawCanvasOptions {
/** 画布标识,传入 的 cavas-id */
canvasId: number | string;
/**
* 绘图动作数组,由 wx.createContext 创建的 context,
* 调用 getActions 方法导出绘图动作数组。
*/
actions: Array;
}
/**
* 绘制画布
*/
function drawCanvas(options: DrawCanvasOptions): void;
/**
* 收起键盘。
*/
function hideKeyboard(): void;
interface LoginResponse {
/** 调用结果 */
errMsg: string;
/** 用户允许登录后,回调内容会带上 code(有效期五分钟),
* 开发者需要将 code 发送到开发者服务器后台,
* 使用code 换取 session_key api,
* 将 code 换成 openid 和 session_key */
code: string;
}
interface LoginOptions {
/** 接口调用成功的回调函数 */
success?: (res: LoginResponse) => void;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 调用接口获取登录凭证(code)进而换取用户登录态信息,
* 包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key)。
* 用户数据的加解密通讯需要依赖会话密钥完成。
*/
function login(option: LoginOptions): void;
interface UserInfo {
nickName: string;
avatarUrl: string;
gender: number;
province: string;
city: string;
country: string;
}
interface UserInfoResponse {
/** 用户信息对象,不包含 openid 等敏感信息 */
userInfo: UserInfo;
/** 不包括敏感信息的原始数据字符串,用于计算签名。 */
rawData: string;
/** 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息。 */
signature: string;
/** 包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法 */
encryptData: string;
}
interface GetUserInfoOptions {
/** 接口调用成功的回调函数 */
success?: (res: UserInfoResponse) => void;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 获取用户信息,需要先调用 wx.login 接口。
*/
function getUserInfo(options: GetUserInfoOptions): void;
type PaymentSignType = 'MD5';
interface RequestPaymentOptions {
/** 时间戳从1970年1月1日00:00:00至今的秒数,即当前的时间 */
timeStamp: string|number;
/** 随机字符串,长度为32个字符以下。 */
nonceStr: string;
/** 统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=* */
package: string;
/** 签名算法,暂支持 MD5 */
signType: PaymentSignType;
/** 签名,具体签名方案参见微信公众号支付帮助文档; */
paySign: string;
/** 接口调用成功的回调函数 */
success?: ResponseCallback;
/** 接口调用失败的回调函数 */
fail?: ResponseCallback;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: ResponseCallback;
}
/**
* 发起微信支付。
*/
function requestPayment(options: RequestPaymentOptions): void;
}
interface Page {
/**
* setData 函数用于将数据从逻辑层发送到视图层,
* 同时改变对应的 this.data 的值。
* 注意:
* 1. 直接修改 this.data 无效,无法改变页面的状态,还会造成数据不一致。
* 2. 单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据。
*/
setData(data: any): void;
}
interface PageConstructor {
/**
* Page() 函数用来注册一个页面。
* 接受一个 object 参数,其指定页面的初始数据、生命周期函数、事件处理函数等。
*/
(options: wx.PageOptions): void;
}
declare var Page: PageConstructor;
interface App {
/**
* getCurrentPage() 函数用户获取当前页面的实例。
*/
getCurrentPage(): Page;
}
interface AppConstructor {
/**
* App() 函数用来注册一个小程序。
* 接受一个 object 参数,其指定小程序的生命周期函数等。
*/
(options: wx.AppOptions): void;
}
declare var App: AppConstructor;
/**
* 我们提供了全局的 getApp() 函数,可以获取到小程序实例。
*/
declare function getApp(): App;