gitee地址:https://gitee.com/FanMax/rose
github地址:https://github.com/pony13500815917/rose
- .d.ts 使用舉例
/**
* 微信小游戲工具類
*/
class WxGameUtil {
/**
* 監(jiān)聽小游戲回到前臺(tái)的事件
* 可將此監(jiān)聽放在Main createChildren 中開啟
*/
public static onShow() {
wx.onShow(function (option) {
console.log("監(jiān)聽小游戲回到前臺(tái)的事件......");
console.log(option);
console.log("-----監(jiān)聽小游戲End......-----");
});
}
/**
* 登陸 - 獲取Code
*/
public static async login() {
return new Promise(function (resolve, reject) {
wx.login({
success(res) {
resolve(res);
}
})
});
}
/**
* 獲取用戶信息 - 創(chuàng)建授權(quán)按鈕
*/
public static async getUserInfo() {
return new Promise((resolve, reject) => {
let sysInfo = wx.getSystemInfoSync();
let sdkVersion = sysInfo.SDKVersion;
sdkVersion = sdkVersion.replace(/\./g, "");
sdkVersion = sdkVersion.substr(0, 3);
let sdkVersionNum = parseInt(sdkVersion);
// 判斷是否已經(jīng)授權(quán) - 并且兼容 2.0.1 以前版本獲取
wx.getSetting({
success(res) {
if (sdkVersionNum >= 201 && !res.authSetting['scope.userInfo']) {
// 創(chuàng)建獲取用戶信息按鈕
var button = wx.createUserInfoButton({
type: 'image',
text: '',
image: "http://www.oneh5.com/iptv/h5/egret/billiard/resource/game/jiqiu.png",
style: {
left: 0,
top: 0,
width: 100,
height: 100
}
});
button.onTap((res) => {
if (res.userInfo) {
console.log("用戶授權(quán):", res);
var userInfo = res.userInfo;
var nickName = userInfo.nickName;
var avatarUrl = userInfo.avatarUrl;
var gender = userInfo.gender; //性別 0:未知、1:男匣屡、2:女
var province = userInfo.province;
var city = userInfo.city;
var country = userInfo.country;
button.destroy();
resolve(userInfo);
} else {
wx.showModal({
title: '友情提醒',
content: '請(qǐng)?jiān)试S微信獲得授權(quán)!',
showCancel: false,
cancelColor: '#000000',
confirmText: '確定',
confirmColor: '#3cc51f'
});
}
});
} else {
// 已授權(quán) - 直接獲取
wx.getUserInfo({
withCredentials: true,
success: res => {
var userInfo = res.userInfo;
var nickName = userInfo.nickName;
var avatarUrl = userInfo.avatarUrl;
var gender = userInfo.gender; //性別 0:未知卷哩、1:男、2:女
var province = userInfo.province;
var city = userInfo.city;
var country = userInfo.country;
resolve(userInfo);
},
fail: res => {
wx.showModal({
title: '友情提醒',
content: '請(qǐng)?jiān)试S微信獲得授權(quán)!',
showCancel: false,
cancelColor: '#000000',
confirmText: '確定',
confirmColor: '#3cc51f'
});
}
});
}
}
});
})
}
/**
* 設(shè)置默認(rèn)分享
*/
public static setDefaultShare() {
// 開啟分享
wx.showShareMenu({
withShareTicket: true
});
wx.onShareAppMessage(function () {
return {
title: '分享',
imageUrl: ''
}
});
}
/**
* 主動(dòng)分享
*/
public static shareGame(object) {
wx.shareAppMessage({
title: object.title,
imageUrl: object.image,
query: object.query
})
}
}
- [文件] 微信小游戲.d.ts
- 將下面代碼放在.d.ts后綴文件中,放入項(xiàng)目libs中即可調(diào)用蔬咬,使用方法可參考微信小游戲API
/**
* 取消一個(gè)先前通過調(diào)用 requestAnimationFrame 方法添加到計(jì)劃中的動(dòng)畫幀請(qǐng)求
*/
declare function cancelAnimationFrame(requestID: number): void;
/**
* 在下次進(jìn)行重繪時(shí)執(zhí)行曹动。
*/
declare function requestAnimationFrame(callback: () => void): number;
/** 輸出日志*/
interface Console {
debug(message?: any, ...optionalParams: any[]): void;
error(message?: any, ...optionalParams: any[]): void;
group(groupTitle?: string, ...optionalParams: any[]): void;
groupEnd(): void;
info(message?: any, ...optionalParams: any[]): void;
log(message?: any, ...optionalParams: any[]): void;
warn(message?: any, ...optionalParams: any[]): void;
}
/** 輸出日志*/
declare var Console: {
prototype: Console;
new(): Console;
};
declare var console: Console;
/**
* 可取消由 setTimeout() 方法設(shè)置的定時(shí)器。
*/
declare function clearTimeout(timeoutID: number): void;
/**
* 可取消由 setInterval() 方法設(shè)置的定時(shí)器饰恕。
*/
declare function clearInterval(intervalID: number): void;
/**
* 設(shè)定一個(gè)定時(shí)器挠羔,在定時(shí)到期以后執(zhí)行注冊(cè)的回調(diào)函數(shù)
* @param callback 回調(diào)函數(shù)
* @param delay 延遲的時(shí)間,函數(shù)的調(diào)用會(huì)在該延遲之后發(fā)生埋嵌,單位 ms破加。
* @param rest param1, param2, ..., paramN 等附加參數(shù),它們會(huì)作為參數(shù)傳遞給回調(diào)函數(shù)雹嗦。
* @returns number定時(shí)器的編號(hào)范舀。這個(gè)值可以傳遞給 clearTimeout 來取消該定時(shí)合是。
*/
declare function setTimeout(callback: () => void, delay: number, ...rest): number;
/**
* 設(shè)定一個(gè)定時(shí)器,按照指定的周期(以毫秒計(jì))來執(zhí)行注冊(cè)的回調(diào)函數(shù)
* @param callback 回調(diào)函數(shù)
* @param delay 執(zhí)行回調(diào)函數(shù)之間的時(shí)間間隔锭环,單位 ms聪全。
* @param rest param1, param2, ..., paramN 等附加參數(shù),它們會(huì)作為參數(shù)傳遞給回調(diào)函數(shù)辅辩。
* @returns number定時(shí)器的編號(hào)难礼。這個(gè)值可以傳遞給 clearTimeout 來取消該定時(shí)。
*/
declare function setInterval(callback: () => void, delay: number, ...rest): number;
/**
* 微信小游戲命名空間
*/
declare namespace wx {
type ENV = {
USER_DATA_PATH: string;
}
var env: ENV;
type systemInfo = {
/** 手機(jī)品牌*/
brand: string;
/** 手機(jī)型號(hào)*/
model: string;
/** 設(shè)備像素比 */
pixelRatio: number;
/** 屏幕寬度*/
screenWidth: number;
/** 屏幕高度*/
screenHeight: number;
/** 可使用窗口寬度*/
windowWidth: number;
/** 可使用窗口高度*/
windowHeight: number;
/** 狀態(tài)欄的高度*/
statusBarHeight: number;
/** 微信設(shè)置的語言*/
language: string;
/** 微信版本號(hào)*/
version: string;
/** 操作系統(tǒng)版本*/
system: string;
/** 客戶端平臺(tái)*/
platform: string
/** 用戶字體大小設(shè)置玫锋。以“我-設(shè)置 - 通用 - 字體大小”中的設(shè)置為準(zhǔn)蛾茉,單位 px。*/
fontSizeSetting: number;
/** 客戶端基礎(chǔ)庫版本*/
SDKVersion: string;
/** 性能等級(jí)*/
benchmarkLevel: number;
}
type launchOption = {
/** 啟動(dòng)小游戲的場(chǎng)景值*/
scene: number;
/** 啟動(dòng)小游戲的 query 參數(shù) */
query: Object;
/** 當(dāng)前小游戲是否被顯示在聊天頂部*/
referrerInfo: ReferrerInfo
/** shareTicket景醇,詳見獲取更多轉(zhuǎn)發(fā)信息*/
shareTicket: string;
}
type ReferrerInfo = {
/** 來源小程序或公眾號(hào)或App的 appId */
appId: string,
/** 來源小程序傳過來的數(shù)據(jù)臀稚,scene=1037或1038時(shí)支持*/
extraData: any
}
/**
* UpdateManager 對(duì)象,用來管理更新三痰,可通過 wx.getUpdateManager 接口獲取實(shí)例吧寺。
*/
type UpdateManager = {
/**
* 強(qiáng)制小程序重啟并使用新版本。在小程序新版本下載完成后(即收到 onUpdateReady 回調(diào))調(diào)用散劫。
*/
applyUpdate(): void;
/**
* 監(jiān)聽向微信后臺(tái)請(qǐng)求檢查更新結(jié)果事件稚机。微信在小程序冷啟動(dòng)時(shí)自動(dòng)檢查更新,不需由開發(fā)者主動(dòng)觸發(fā)获搏。
* @param callback 向微信后臺(tái)請(qǐng)求檢查更新結(jié)果事件的回調(diào)函數(shù)
*/
onCheckForUpdate(callback: (res: { hasUpdate: boolean }) => void): void;
/**
* 監(jiān)聽小程序有版本更新事件赖条。客戶端主動(dòng)觸發(fā)下載(無需開發(fā)者觸發(fā))常熙,下載成功后回調(diào)
* @param callback 小程序有版本更新事件的回調(diào)函數(shù)
*/
onUpdateReady(callback: () => void): void;
/**
* 監(jiān)聽小程序更新失敗事件纬乍。小程序有新版本,客戶端主動(dòng)觸發(fā)下載(無需開發(fā)者觸發(fā))裸卫,下載失敺卤帷(可能是網(wǎng)絡(luò)原因等)后回調(diào)
* @param callback 小程序更新失敗事件的回調(diào)函數(shù)
*/
onUpdateFailed(callback: () => void): void;
}
/**
* 在觸控設(shè)備上的觸摸點(diǎn)。通常是指手指或者觸控筆在觸屏設(shè)備或者觸摸板上的操作墓贿。
*/
type Touch = {
/** Touch 對(duì)象的唯一標(biāo)識(shí)符茧泪,只讀屬性。一次觸摸動(dòng)作(我們值的是手指的觸摸)在平面上移動(dòng)的整個(gè)過程中, 該標(biāo)識(shí)符不變聋袋《游埃可以根據(jù)它來判斷跟蹤的是否是同一次觸摸過程。*/
identifier: number
/** 觸點(diǎn)相對(duì)于屏幕左邊沿的 X 坐標(biāo)幽勒。*/
screenX: number
/** 觸點(diǎn)相對(duì)于屏幕上邊沿的 Y 坐標(biāo)嗜侮。*/
screenY: number
}
/**
* 性能管理器
*/
type Performance = {
/**
* 可以獲取當(dāng)前時(shí)間以微秒為單位的時(shí)間戳
*/
now(): number;
}
/**
* 加載分包任務(wù)實(shí)例,用于獲取分包加載狀態(tài)
*/
type LoadSubpackageTask = {
/**
* 監(jiān)聽分包加載進(jìn)度變化事件
* @param callback 分包加載進(jìn)度變化事件的回調(diào)函數(shù)
*/
onProgressUpdate(callback: (res: {
/** 分包下載進(jìn)度百分比*/
progress: number
/** 已經(jīng)下載的數(shù)據(jù)長(zhǎng)度,單位 Bytes */
totalBytesWritten: number
/** 預(yù)期需要下載的數(shù)據(jù)總長(zhǎng)度锈颗,單位 Bytes*/
totalBytesExpectedToWrite: number
}) => void): void
}
/**
* 通過 Canvas.getContext('2d') 接口可以獲取 CanvasRenderingContext2D 對(duì)象缠借,實(shí)現(xiàn)了 HTML Canvas 2D Context 定義的大部分屬性、方法宜猜。
* 通過 Canvas.getContext('webgl') 接口可以獲取 WebGLRenderingContext 對(duì)象,實(shí)現(xiàn)了 WebGL 1.0 定義的所有屬性硝逢、方法姨拥、常量。
* 2d 接口支持情況
* iOS/Android 不支持的 2d 屬性和接口
* globalCompositeOperation 不支持以下值: source-in source-out destination-atop lighter copy渠鸽。如果使用叫乌,不會(huì)報(bào)錯(cuò),但是將得到與預(yù)期不符的結(jié)果徽缚。
* isPointInPath
* WebGL 接口支持情況
* iOS/Android 不支持的 WebGL 接口
* pixelStorei 當(dāng)?shù)谝粋€(gè)參數(shù)是 gl.UNPACK_COLORSPACE_CONVERSION_WEBGL 時(shí)
* compressedTexImage2D
* compressedTexSubImage2D
* 除此之外 Android 還不支持 WebGL 接口
* getExtension
* getSupportedExtensions
*/
interface RenderingContext { }
interface Canvas {
/** 畫布的寬度*/
width: number;
/** 畫布的高度*/
height: number;
/**
* 獲取畫布對(duì)象的繪圖上下文
*/
getContext(contextType: '2d' | 'webgl', contextAttributes: { antialias?: boolean, preserveDrawingBuffer?: boolean, antialiasSamples?: 2 }): RenderingContext;
/**
* 將當(dāng)前 Canvas 保存為一個(gè)臨時(shí)文件憨奸,并生成相應(yīng)的臨時(shí)文件路徑。
*/
toTempFilePath(object: { x?: number, y?: number, width?: number, height?: number, destWidth?: number, destHeight?: number, fileType?: 'jpg' | 'png', quality?: number, success?: (res?: any) => void, fail?: (err?: any) => void, complete?: (res?: any) => void }): string;
/**
* 把畫布上的繪制內(nèi)容以一個(gè) data URI 的格式返回
*/
toDataURL(): string;
/**
* Canvas.toTempFilePath 的同步版本
*/
toTempFilePathSync(object: { x?: number, y?: number, width?: number, height?: number, destWidth?: number, destHeight?: number, fileType?: 'jpg' | 'png', quality?: number }): void;
}
/**
* 獲取系統(tǒng)信息
*/
function getSystemInfo(object: { success: (res?: systemInfo) => void, fail: (err?: any) => void, complete: (res?: any) => void }): void;
/**
* wx.getSystemInfo 的同步版本
*/
function getSystemInfoSync(): systemInfo;
/**
* 返回值 UpdateManager
*/
function getUpdateManager(): UpdateManager;
/**
* 退出當(dāng)前小游戲
*/
function exitMiniProgram(object: { success?: () => void, fail?: () => void, complete?: () => void }): void;
/**
* 返回小程序啟動(dòng)參數(shù)
*/
function getLaunchOptionsSync(): launchOption;
/**
* 監(jiān)聽小游戲隱藏到后臺(tái)事件凿试。鎖屏排宰、按 HOME 鍵退到桌面、顯示在聊天頂部等操作會(huì)觸發(fā)此事件那婉。
*/
function onHide(callback: () => void): void;
/**
* 取消監(jiān)聽小游戲隱藏到后臺(tái)事件板甘。鎖屏、按 HOME 鍵退到桌面详炬、顯示在聊天頂部等操作會(huì)觸發(fā)此事件盐类。
*/
function offHide(callback: () => void): void;
/**
* 監(jiān)聽小游戲回到前臺(tái)的事件
*/
function onShow(callback: (res: {
/** 場(chǎng)景值*/
scene: string,
/** 查詢參數(shù)*/
query: any,
/** shareTicket*/
shareTicket: string,
/** 當(dāng)場(chǎng)景為由從另一個(gè)小程序或公眾號(hào)或App打開時(shí),返回此字段*/
referrerInfo: ReferrerInfo
}) => void): void;
/**
* 取消監(jiān)聽小游戲回到前臺(tái)的事件
*/
function offShow(callback: () => void): void;
/**
* 監(jiān)聽音頻中斷結(jié)束呛谜,在收到 onAudioInterruptionBegin 事件之后在跳,小程序內(nèi)所有音頻會(huì)暫停,收到此事件之后才可再次播放成功
*/
function onAudioInterruptionEnd(callback: () => void): void;
/**
* 取消監(jiān)聽音頻中斷結(jié)束隐岛,在收到 onAudioInterruptionBegin 事件之后猫妙,小程序內(nèi)所有音頻會(huì)暫停,收到此事件之后才可再次播放成功
*/
function offAudioInterruptionEnd(callback: () => void): void;
/**
* 監(jiān)聽音頻因?yàn)槭艿较到y(tǒng)占用而被中斷開始礼仗,以下場(chǎng)景會(huì)觸發(fā)此事件:鬧鐘吐咳、電話、FaceTime 通話元践、微信語音聊天韭脊、微信視頻聊天。此事件觸發(fā)后单旁,小程序內(nèi)所有音頻會(huì)暫停沪羔。
*/
function onAudioInterruptionBegin(callback: () => void): void;
/**
* 取消監(jiān)聽音頻因?yàn)槭艿较到y(tǒng)占用而被中斷開始,以下場(chǎng)景會(huì)觸發(fā)此事件:鬧鐘、電話蔫饰、FaceTime 通話琅豆、微信語音聊天、微信視頻聊天篓吁。此事件觸發(fā)后茫因,小程序內(nèi)所有音頻會(huì)暫停。
*/
function offAudioInterruptionBegin(callback: () => void): void;
/**
* 監(jiān)聽全局錯(cuò)誤事件
*/
function onError(callback: (res: {
/** 錯(cuò)誤*/
message: string,
/** 錯(cuò)誤調(diào)用堆棧*/
stack: string
}) => void): void;
/**
* 取消監(jiān)聽全局錯(cuò)誤事件
*/
function offError(callback: () => void): void;
/**
* 監(jiān)聽開始觸摸事件
*/
function onTouchStart(callback: (res: {
/** 當(dāng)前所有觸摸點(diǎn)的列表*/
touches: Array<Touch>,
/** 觸發(fā)此次事件的觸摸點(diǎn)列表*/
changedTouches: Array<Touch>,
/** 事件觸發(fā)時(shí)的時(shí)間戳*/
timeStamp: number
}) => void): void;
/**
* 取消監(jiān)聽開始觸摸事件
*/
function offTouchStart(callback: () => void): void;
/**
* 監(jiān)聽觸點(diǎn)移動(dòng)事件
*/
function onTouchMove(callback: (res: {
/** 當(dāng)前所有觸摸點(diǎn)的列表*/
touches: Array<Touch>,
/** 觸發(fā)此次事件的觸摸點(diǎn)列表*/
changedTouches: Array<Touch>,
/** 事件觸發(fā)時(shí)的時(shí)間戳*/
timeStamp: number
}) => void): void;
/**
* 取消監(jiān)聽觸點(diǎn)移動(dòng)事件
*/
function offTouchMove(callback: () => void): void;
/**
* 監(jiān)聽觸摸結(jié)束事件
*/
function onTouchEnd(callback: (res: {
/** 當(dāng)前所有觸摸點(diǎn)的列表*/
touches: Array<Touch>,
/** 觸發(fā)此次事件的觸摸點(diǎn)列表*/
changedTouches: Array<Touch>,
/** 事件觸發(fā)時(shí)的時(shí)間戳*/
timeStamp: number
}) => void): void;
/**
* 取消監(jiān)聽觸摸結(jié)束事件
*/
function offTouchEnd(callback: () => void): void;
/**
* 監(jiān)聽觸點(diǎn)失效事件
*/
function onTouchCancel(callback: (res: {
/** 當(dāng)前所有觸摸點(diǎn)的列表*/
touches: Array<Touch>,
/** 觸發(fā)此次事件的觸摸點(diǎn)列表*/
changedTouches: Array<Touch>,
/** 事件觸發(fā)時(shí)的時(shí)間戳*/
timeStamp: number
}) => void): void;
/**
* 取消監(jiān)聽觸點(diǎn)失效事件
*/
function offTouchCancel(callback: () => void): void;
/**
* 獲取性能管理器
*/
function getPerformance(): Performance;
/**
* 加快觸發(fā) JavaScrpitCore Garbage Collection(垃圾回收)杖剪,GC 時(shí)機(jī)是由 JavaScrpitCore 來控制的冻押,并不能保證調(diào)用后馬上觸發(fā) GC。
*/
function triggerGC(): void;
/**
* 基礎(chǔ)庫 2.1.0 開始支持盛嘿,低版本需做兼容處理洛巢。
* 觸發(fā)分包加載,詳見 分包加載
*/
function loadSubpackage(res: {
/** 分包的名字次兆,可以填 name 或者 root*/
name: () => void,
/** 分包加載成功回調(diào)事件*/
success: () => void,
/** 分包加載失敗回調(diào)事件*/
fail: () => void,
/** 分包加載結(jié)束回調(diào)事件(加載成功稿茉、失敗都會(huì)執(zhí)行)*/
complete: () => void
}): LoadSubpackageTask;
/**
* 基礎(chǔ)庫 1.4.0 開始支持,低版本需做兼容處理芥炭。
* 設(shè)置是否打開調(diào)試開關(guān)漓库。此開關(guān)對(duì)正式版也能生效。
*/
function setEnableDebug(res: {
/** 是否打開調(diào)試*/
enableDebug: boolean,
/** 接口調(diào)用成功的回調(diào)函數(shù)*/
success?: () => void,
/** 接口調(diào)用失敗的回調(diào)函數(shù)*/
fail?: () => void,
/** 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功园蝠、失敗都會(huì)執(zhí)行)*/
complete?: () => void
}): void;
/**
* 創(chuàng)建一個(gè)畫布對(duì)象米苹。首次調(diào)用創(chuàng)建的是顯示在屏幕上的畫布,之后調(diào)用創(chuàng)建的都是離屏畫布砰琢。
*/
function createCanvas(): Canvas;
/**
* 可以修改渲染幀率蘸嘶。默認(rèn)渲染幀率為 60 幀每秒。修改后陪汽,requestAnimationFrame 的回調(diào)頻率會(huì)發(fā)生改變训唱。
*/
function setPreferredFramesPerSecond(fps: number): void;
/**
* 獲取一行文本的行高
* @returns number 文本的行高
*/
function getTextLineHeight(object: { fontStyle?: 'normal' | 'italic', fontWeight?: 'normal' | 'bold', fontSize?: 16, fontFamily: string, text: string, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): number;
/**
* 加載自定義字體文件
* @returns string 如果加載字體成功,則返回字體 family 值挚冤,否則返回 null况增。
*/
function loadFont(path: string): string;
interface Image {
/**
* 圖片的 URL
*/
src: string;
/**
* 圖片的真實(shí)寬度
*/
width: number;
/**
* 圖片的真實(shí)高度
*/
height: number;
/**
* 圖片的加載完成
*/
onload: (res?: any) => void;
/**
* 圖片加載發(fā)生錯(cuò)誤后觸發(fā)的回調(diào)函數(shù)
*/
onerror: (res?: any) => void;
}
/**
* 創(chuàng)建一個(gè)圖片對(duì)象
*/
function createImage(): Image;
/**
* banner 廣告組件。banner 廣告組件是一個(gè)原生組件训挡,層級(jí)比上屏 Canvas 高澳骤,會(huì)覆蓋在上屏 Canvas 上。banner 廣告組件默認(rèn)是隱藏的澜薄,需要調(diào)用 BannerAd.show() 將其顯示为肮。banner 廣告會(huì)根據(jù)開發(fā)者設(shè)置的寬度進(jìn)行等比縮放,縮放后的尺寸將通過 BannerAd.onResize() 事件中提供肤京。
*/
interface BannerAd {
/**
* banner 廣告組件的樣式颊艳。style 上的屬性的值僅為開發(fā)者設(shè)置的值,banner 廣告會(huì)根據(jù)開發(fā)者設(shè)置的寬度進(jìn)行等比縮放,縮放后的真實(shí)尺寸需要通過 BannerAd.onResize() 事件獲得棋枕。
*/
style: {
/** banner 廣告組件的左上角橫坐標(biāo)*/
left: number,
/** banner 廣告組件的左上角縱坐標(biāo)*/
top: number,
/** banner 廣告組件的寬度白修。最小 300,最大至 屏幕寬度(屏幕寬度可以通過 wx.getSystemInfoSync() 獲戎匕摺)兵睛。*/
width: number,
/** banner 廣告組件的高度*/
height: number,
/** banner 廣告組件經(jīng)過縮放后真實(shí)的寬度*/
realWidth: number,
/** banner 廣告組件經(jīng)過縮放后真實(shí)的高度*/
realHeight: number
};
/** 顯示 banner 廣告。*/
show(): Promise<any>;
/** 隱藏 banner 廣告*/
hide(): void;
/** 銷毀 banner 廣告*/
destroy(): void;
/** 監(jiān)聽 banner 廣告尺寸變化事件*/
onResize(callback: (res: { width: number, height: number }) => void): void;
/** 取消監(jiān)聽 banner 廣告尺寸變化事件*/
offResize(callback: () => void): void;
/** 監(jiān)聽 banner 廣告加載事件*/
onLoad(callback: () => void): void;
/** 取消監(jiān)聽 banner 廣告加載事件*/
offLoad(callback: () => void): void;
/** 監(jiān)聽 banner 廣告錯(cuò)誤事件*/
onError(callback: (res: { errMsg: string, errCode: 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 }) => void): void;
/** 取消監(jiān)聽 banner 廣告錯(cuò)誤事件*/
offError(callback: () => void): void;
}
/**
* 激勵(lì)視頻廣告組件窥浪。激勵(lì)視頻廣告組件是一個(gè)原生組件卤恳,并且是一個(gè)全局單例。層級(jí)比上屏 Canvas 高寒矿,會(huì)覆蓋在上屏 Canvas 上。激勵(lì)視頻 廣告組件默認(rèn)是隱藏的若债,需要調(diào)用 RewardedVideoAd.show() 將其顯示符相。
*/
interface RewardedVideoAd {
/** 隱藏激勵(lì)視頻廣告*/
load(): Promise<any>;
/** 顯示激勵(lì)視頻廣告。激勵(lì)視頻廣告將從屏幕下方推入蠢琳。*/
show(): Promise<any>;
/** 銷毀 banner 廣告*/
destroy(): void;
/** 監(jiān)聽 banner 廣告尺寸變化事件*/
onResize(callback: (res: { width: number, height: number }) => void): void;
/** 取消監(jiān)聽 banner 廣告尺寸變化事件*/
offResize(callback: () => void): void;
/** 監(jiān)聽激勵(lì)視頻廣告加載事件*/
onLoad(callback: () => void): void;
/** 取消監(jiān)聽激勵(lì)視頻廣告加載事件*/
offLoad(callback: () => void): void;
/** 監(jiān)聽激勵(lì)視頻錯(cuò)誤事件*/
onError(callback: (res: { errMsg: string, errCode: 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 }) => void): void;
/** 取消監(jiān)聽激勵(lì)視頻錯(cuò)誤事件*/
offError(callback: () => void): void;
/** 監(jiān)聽用戶點(diǎn)擊 關(guān)閉廣告 按鈕的事件*/
onClose(callback: (res: { isEnded: boolean }) => void);
/** 取消監(jiān)聽用戶點(diǎn)擊 關(guān)閉廣告 按鈕的事件*/
offClose(callback: () => void);
}
/**
* 創(chuàng)建激勵(lì)視頻廣告組件啊终。請(qǐng)通過 wx.getSystemInfoSync() 返回對(duì)象的 SDKVersion 判斷基礎(chǔ)庫版本號(hào) >= 2.0.4 后再使用該 API。同時(shí)傲须,開發(fā)者工具上暫不支持調(diào)試該 API蓝牲,請(qǐng)直接在真機(jī)上進(jìn)行調(diào)試。
*/
function createRewardedVideoAd(res: { adUnitId: string }): RewardedVideoAd;
/**
* 創(chuàng)建 banner 廣告組件泰讽。請(qǐng)通過 wx.getSystemInfoSync() 返回對(duì)象的 SDKVersion 判斷基礎(chǔ)庫版本號(hào) >= 2.0.4 后再使用該 API例衍。同時(shí),開發(fā)者工具上暫不支持調(diào)試該 API已卸,請(qǐng)直接在真機(jī)上進(jìn)行調(diào)試佛玄。
*/
function createBannerAd(res: {
adUnitId: string, style: {
left: number,
top: number,
width: number,
height: number
}
}): BannerAd;
/**
* 顯示操作菜單
*/
function showActionSheet(object: { itemList: string[], itemColor?: string, success?: (res?: { tapIndex: number }) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/** 隱藏 loading 提示框*/
function hideLoading(object: { success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/** 顯示 loading 提示框。需主動(dòng)調(diào)用 wx.hideLoading 才能關(guān)閉提示框*/
function showLoading(object: { title: string, mask?: boolean, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/** 隱藏消息提示框*/
function hideToast(object: { success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/** 顯示消息提示框*/
function showToast(object: { title: string, icon?: 'success' | 'loading' | 'none', image?: string, duration?: 1500, mask?: boolean, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 顯示模態(tài)對(duì)話框
*/
function showModal(object: {
title: string,
content: string,
showCancel?: boolean,
cancelText?: string,
cancelColor?: string,
confirmText?: string,
confirmColor?: string,
success?: (res?: any) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/**
* 基礎(chǔ)庫 2.1.0 開始支持累澡,低版本需做兼容處理梦抢。更新鍵盤輸入框內(nèi)容。只有當(dāng)鍵盤處于拉起狀態(tài)時(shí)才會(huì)產(chǎn)生效果
*/
function updateKeyboard(res: {
value: string,
success?: (res?: any) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/**
* 隱藏鍵盤
*/
function hideKeyboard(object: { success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 顯示鍵盤
*/
function showKeyboard(object: { defaultValue: string, maxLength: number, multiple: boolean, confirmHold: boolean, confirmType: 'done' | 'next' | 'search' | 'go' | 'send', success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 監(jiān)聽鍵盤輸入事件
*/
function onKeyboardInput(callback: (res: { value: string }) => void): void;
/**
* 取消監(jiān)聽鍵盤輸入事件
*/
function offKeyboardInput(callback: () => void): void;
/**
* 監(jiān)聽用戶點(diǎn)擊鍵盤 Confirm 按鈕時(shí)的事件
*/
function onKeyboardConfirm(callback: (res: { value: string }) => void): void;
/**
* 取消監(jiān)聽用戶點(diǎn)擊鍵盤 Confirm 按鈕時(shí)的事件
*/
function offKeyboardConfirm(callback: () => void): void;
/**
* 監(jiān)聽監(jiān)聽鍵盤收起的事件
*/
function onKeyboardComplete(callback: (res: { value: string }) => void): void;
/**
* 取消監(jiān)聽監(jiān)聽鍵盤收起的事件
*/
function offKeyboardComplete(callback: () => void): void;
/** 基礎(chǔ)庫 2.1.0 開始支持愧哟,低版本需做兼容處理奥吩。獲取菜單按鈕(右上角膠囊按鈕)的布局位置信息。坐標(biāo)信息以屏幕左上角為原點(diǎn)蕊梧。*/
function getMenuButtonBoundingClientRect(): {
width: number,
height: number,
top: number,
right: number,
bottom: number,
left: number
};
/** 動(dòng)態(tài)設(shè)置通過右上角按鈕拉起的菜單的樣式霞赫。*/
function setMenuStyle(res: { style: 'light' | 'dark', success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/** 當(dāng)在配置中設(shè)置 showStatusBarStyle 時(shí),屏幕頂部會(huì)顯示狀態(tài)欄肥矢。此接口可以修改狀態(tài)欄的樣式绩脆。*/
function setStatusBarStyle(res: { style: 'white' | 'black', success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 監(jiān)聽窗口尺寸變化事件
*/
function onWindowResize(callback: (res: { windowWidth: number, windowHeight: number }) => void): void;
/**
* 取消監(jiān)聽窗口尺寸變化事件
*/
function offWindowResize(callback: () => void): void;
interface RequestTask {
abort(): void;
/** 監(jiān)聽 HTTP Response Header 事件。會(huì)比請(qǐng)求完成事件更早*/
onHeadersReceived(callback: (res: { header: Object }) => void): void;
/** 取消監(jiān)聽 HTTP Response Header 事件*/
offHeadersReceived(callback: () => void): void;
}
/**
* 發(fā)起網(wǎng)絡(luò)請(qǐng)求。
*/
function request(object: {
url: string,
data?: string | {} | ArrayBuffer,
header?: {},
method?: 'OPTIONS' | 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'TRACE' | 'CONNECT',
dataType?: 'json' | string,
responseType: 'text' | 'arraybuffer',
success?: (res?: {
data: string | {} | ArrayBuffer,
statusCode: number,
header: {}
}) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): RequestTask;
interface DownloadTask {
abort(): void;
/** 監(jiān)聽下載進(jìn)度變化事件*/
onProgressUpdate(callback: (res: {
progress: number,
totalBytesWritten: number,
totalBytesExpectedToWrite: number
}) => void): void;
/** 取消監(jiān)聽下載進(jìn)度變化事件*/
offProgressUpdate(callback: () => void): void;
/** 監(jiān)聽 HTTP Response Header 事件靴迫。會(huì)比請(qǐng)求完成事件更早*/
onHeadersReceived(callback: (res: { header: Object }) => void): void;
/** 取消監(jiān)聽 HTTP Response Header 事件*/
offHeadersReceived(callback: () => void): void;
}
/**
* 下載文件資源到本地惕味,客戶端直接發(fā)起一個(gè) HTTP GET 請(qǐng)求,返回文件的本地文件路徑玉锌。
*/
function downloadFile(object: {
url: string,
header?: Object,
filePath?: string,
success?: (res?: {
tempFilePath: string,
statusCode: number
}) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): DownloadTask;
interface UploadTask {
/** 中斷上傳任務(wù)*/
abort(): void;
/** 監(jiān)聽上傳進(jìn)度變化事件*/
onProgressUpdate(callback: (res: {
progress: number,
totalBytesSent: number,
totalBytesExpectedToSend: number
}) => void): void;
/** 取消監(jiān)聽上傳進(jìn)度變化事件*/
offProgressUpdate(callback: () => void): void;
/** 監(jiān)聽 HTTP Response Header 事件名挥。會(huì)比請(qǐng)求完成事件更早*/
onHeadersReceived(callback: (res: { header: Object }) => void): void;
/** 取消監(jiān)聽 HTTP Response Header 事件*/
offHeadersReceived(callback: () => void): void;
}
/**
* 將本地資源上傳到開發(fā)者服務(wù)器,客戶端發(fā)起一個(gè) HTTPS POST 請(qǐng)求主守,其中 content-type 為 multipart/form-data 禀倔。
*/
function uploadFile(object: {
url: string,
filePath: string,
name: string,
header?: Object,
formData?: Object,
success?: (res?: {
data: string,
statusCode: number
}) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): UploadTask;
interface SocketTask {
/**
* 關(guān)閉 WebSocket 連接
*/
close(object: { code?: 1000, reason?: string, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 監(jiān)聽WebSocket 連接打開事件
*/
onOpen(callback: (res: { header: Object }) => void): void;
/**
* 監(jiān)聽WebSocket 連接關(guān)閉事件
*/
onClose(callback: () => void): void;
/**
* 監(jiān)聽WebSocket 錯(cuò)誤事件
*/
onError(callback: (res: { errMsg: string }) => void): void;
/**
* 監(jiān)聽WebSocket 接受到服務(wù)器的消息事件
*/
onMessage(callback: (res: { data: string | ArrayBuffer }) => void): void;
/**
* 通過 WebSocket 連接發(fā)送數(shù)據(jù)
*/
send(object: { data: string | ArrayBuffer, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
}
/**
* 監(jiān)聽WebSocket 錯(cuò)誤事件
*/
function onSocketError(callback: (err?: any) => void): void;
/**
* 創(chuàng)建一個(gè) WebSocket 連接。
*/
function connectSocket(object: { url: string, header?: {}, protocols: Array<string>, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): SocketTask;
/**
* 關(guān)閉 WeSocket 連接
*/
function closeSocket(object: { code?: 1000, reason?: string, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 監(jiān)聽WebSocket 連接打開事件
*/
function onSocketOpen(callback: (res: { header: {} }) => void): void;
/**
* 監(jiān)聽WebSocket 連接關(guān)閉事件
*/
function onSocketClose(callback: () => void): void;
/**
* 監(jiān)聽WebSocket 接受到服務(wù)器的消息事件
*/
function onSocketMessage(callback: (res: { data: string | ArrayBuffer }) => void): void;
/**
* 通過 WebSocket 連接發(fā)送數(shù)據(jù)参淫,需要先 wx.connectSocket救湖,并在 wx.onSocketOpen 回調(diào)之后才能發(fā)送。
*/
function sendSocketMessage(object: { data: string | ArrayBuffer, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/** 創(chuàng)建一個(gè) UDP Socket 實(shí)例涎才。使用前請(qǐng)注意閱讀相關(guān)說明*/
function createUDPSocket(): UDPSocket;
/** 一個(gè) UDP Socket 實(shí)例鞋既,默認(rèn)使用 IPv4 協(xié)議*/
interface UDPSocket {
/** 綁定一個(gè)系統(tǒng)隨機(jī)分配的可用端口,或綁定一個(gè)指定的端口號(hào)*/
bind(port: number): number;
/** 關(guān)閉 UDP Socket 實(shí)例耍铜,相當(dāng)于銷毀邑闺。 在關(guān)閉之后,UDP Socket 實(shí)例不能再發(fā)送消息棕兼,每次調(diào)用 UDPSocket.send 將會(huì)觸發(fā)錯(cuò)誤事件陡舅,并且 message 事件回調(diào)函數(shù)也不會(huì)再也執(zhí)行。在 UDPSocket 實(shí)例被創(chuàng)建后將被 Native 強(qiáng)引用伴挚,保證其不被 GC靶衍。在 UDPSocket.close 后將解除對(duì)其的強(qiáng)引用,讓 UDPSocket 實(shí)例遵從 GC茎芋。*/
close(): void;
/** 取消監(jiān)聽關(guān)閉事件*/
offClose(callback: () => void): void;
/** 取消監(jiān)聽錯(cuò)誤事件*/
offError(callback: () => void): void;
/** 取消監(jiān)聽開始監(jiān)聽數(shù)據(jù)包消息的事件*/
offListening(callback: () => void): void;
/** 取消監(jiān)聽收到消息的事件*/
offMessage(callback: () => void): void;
/** 監(jiān)聽關(guān)閉事件*/
onClose(callback: () => void): void;
/** 監(jiān)聽錯(cuò)誤事件*/
onError(callback: () => void): void;
/** 監(jiān)聽開始監(jiān)聽數(shù)據(jù)包消息的事件*/
onListening(callback: () => void): void;
/** 監(jiān)聽收到消息的事件*/
onMessage(callback: () => void): void;
/** 向指定的 IP 和 port 發(fā)送消息*/
send(obj: { address: string, port: number, message: string | ArrayBuffer, offset?: number, length?: number }): void;
}
/**
* 更新轉(zhuǎn)發(fā)屬性
*
*/
function updateShareMenu(object: { withShareTicket?: boolean, isUpdatableMessage?: boolean, activityId?: string, templateInfo?: { parameterList: Array<{ name: string, value: string }> }, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 顯示當(dāng)前頁面的轉(zhuǎn)發(fā)按鈕
*/
function showShareMenu(object: { withShareTicket?: boolean, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 隱藏轉(zhuǎn)發(fā)按鈕
*
*/
function hideShareMenu(object: { success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 獲取轉(zhuǎn)發(fā)詳細(xì)信息
*
*/
function getShareInfo(object: {
shareTicket: string,
timeout: number,
success?: (res: {
errMsg: string,
encryptedData: string,
iv: string
}) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/**
* 主動(dòng)拉起轉(zhuǎn)發(fā)摊灭,進(jìn)入選擇通訊錄界面。
*/
function shareAppMessage(object: { title?: string, imageUrl?: string, query?: string, imageUrlId?: string }): void;
/**
* 取消監(jiān)聽用戶點(diǎn)擊右上角菜單的“轉(zhuǎn)發(fā)”按鈕時(shí)觸發(fā)的事件
*/
function offShareAppMessage(callback: () => void): void;
/**
* 監(jiān)聽用戶點(diǎn)擊右上角菜單的“轉(zhuǎn)發(fā)”按鈕時(shí)觸發(fā)的事件
*/
function onShareAppMessage(callback: (res: {
title: string,
imageUrl: string,
query: string
}) => void): void;
/**
* 發(fā)起米大師支付
*/
function requestMidasPayment(object: {
mode: string,
env?: 0 | 1,
offerId: string,
currencyType: string,
platform?: string,
buyQuantity?: number,
zoneId?: string,
success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void
}): void;
/**
* wx.getStorageInfo 的同步版本
*/
function getStorageInfoSync(): { keys: Array<string>, currentSize: number, limitSize: number };
/**
* 異步獲取當(dāng)前storage的相關(guān)信息
*/
function getStorageInfo(object: { success?: (res: { keys: Array<string>, currentSize: number, limitSize: number }) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* wx.clearStorage 的同步版本
*/
function clearStorageSync(): void;
/**
* 清理本地?cái)?shù)據(jù)緩存
*/
function clearStorage(object: { success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* wx.removeStorage 的同步版本
*/
function removeStorageSync(key: string): void;
/**
* 從本地緩存中移除指定 key
*/
function removeStorage(object: { key: string, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* wx.setStorage 的同步版本
*/
function setStorageSync(key: string, data: any): void;
/**
* 將數(shù)據(jù)存儲(chǔ)在本地緩存中指定的 key 中败徊,會(huì)覆蓋掉原來該 key 對(duì)應(yīng)的內(nèi)容帚呼。
*/
function setStorage(object: { key: string, data: any, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* wx.getStorage 的同步版本
*/
function getStorageSync(key: string): any;
/**
* 從本地緩存中異步獲取指定 key 的內(nèi)容
*/
function getStorage(object: { key: string, success?: (res: { data: any }) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 設(shè)置 InnerAudioContext 的播放選項(xiàng)。設(shè)置之后對(duì)當(dāng)前小程序全局生效皱蹦。
*/
function setInnerAudioOption(mixWithOther: true, obeyMuteSwitch: true, success?: (res: { data: any }) => void, fail?: (res?: any) => void, complete?: (res?: any) => void): void;
/**
* 獲取當(dāng)前支持的音頻輸入源
*/
function getAvailableAudioSources(success?: (res: { audioSources: Array<'auto' | 'buildInMic' | 'headsetMic' | 'mic' | 'camcorder' | 'voice_communication' | 'voice_recognition'> }) => void, fail?: (res?: any) => void, complete?: (res?: any) => void): void;
/**
* InnerAudioContext 實(shí)例煤杀,可通過 wx.createInnerAudioContext 接口獲取實(shí)例疲酌。
*/
interface InnerAudioContext {
/** 音頻資源的地址痹升,用于直接播放。2.2.3 開始支持云文件ID*/
src: string;
/** 開始播放的位置(單位:s)笤喳,默認(rèn)為 0*/
startTime: number;
/** 是否自動(dòng)開始播放辜妓,默認(rèn)為 false*/
autoplay: boolean;
/** 是否循環(huán)播放枯途,默認(rèn)為 false*/
loop: boolean;
/** 是否遵循系統(tǒng)靜音開關(guān)忌怎,默認(rèn)為 true。當(dāng)此參數(shù)為 false 時(shí)酪夷,即使用戶打開了靜音開關(guān)榴啸,也能繼續(xù)發(fā)出聲音*/
obeyMuteSwitch: boolean;
/** 基礎(chǔ)庫 1.9.90 開始支持,低版本需做兼容處理晚岭。音量鸥印。范圍 0~1。默認(rèn)為 1*/
volume: number;
/** 當(dāng)前音頻的長(zhǎng)度(單位 s)坦报。只有在當(dāng)前有合法的 src 時(shí)返回(只讀)*/
duration: number;
/** 當(dāng)前音頻的播放位置(單位 s)库说。只有在當(dāng)前有合法的 src 時(shí)返回,時(shí)間保留小數(shù)點(diǎn)后 6 位(只讀)*/
currentTime: number;
/** 當(dāng)前是是否暫推瘢或停止?fàn)顟B(tài)(只讀)*/
paused: boolean;
/** 音頻緩沖的時(shí)間點(diǎn)潜的,僅保證當(dāng)前播放時(shí)間點(diǎn)到此時(shí)間點(diǎn)內(nèi)容已緩沖(只讀)*/
buffered: number;
/**
* 銷毀當(dāng)前實(shí)例
*/
destroy(): void;
/**
* 取消監(jiān)聽音頻進(jìn)入可以播放狀態(tài)的事件
*/
offCanplay(callback: () => void): void;
/**
* 監(jiān)聽音頻暫停事件
*/
onPause(callback: () => void): void;
/**
* 監(jiān)聽音頻停止事件
*/
onStop(callback: () => void): void;
/**
* 取消監(jiān)聽音頻停止事件
*/
offStop(callback: () => void): void;
/**
* 監(jiān)聽音頻自然播放至結(jié)束的事件
*/
onEnded(callback: () => void): void;
/**
* 取消監(jiān)聽音頻自然播放至結(jié)束的事件
*/
offEnded(callback: () => void): void;
/**
* 監(jiān)聽音頻播放進(jìn)度更新事件
*/
onTimeUpdate(callback: () => void): void;
/**
* 監(jiān)聽音頻播放事件
*/
onPlay(callback: () => void): void;
/**
* 監(jiān)聽音頻播放錯(cuò)誤事件
*/
onError(callback: (res: { errCode: 10001 | 10002 | 10003 | 10004 | -1 }) => void): void;
/**
* 取消監(jiān)聽音頻暫停事件
*/
offPause(callback: () => void): void;
/**
* 監(jiān)聽音頻加載中事件,當(dāng)音頻因?yàn)閿?shù)據(jù)不足字管,需要停下來加載時(shí)會(huì)觸發(fā)
*/
onWaiting(callback: () => void): void;
/**
* 取消監(jiān)聽音頻加載中事件啰挪,當(dāng)音頻因?yàn)閿?shù)據(jù)不足,需要停下來加載時(shí)會(huì)觸發(fā)
*/
offWaiting(callback: () => void): void;
/**
* 監(jiān)聽音頻進(jìn)行跳轉(zhuǎn)操作的事件
*/
onSeeking(callback: () => void): void;
/**
* 取消監(jiān)聽音頻進(jìn)行跳轉(zhuǎn)操作的事件
*/
offSeeking(callback: () => void): void;
/**
* 監(jiān)聽音頻完成跳轉(zhuǎn)操作的事件
*/
onSeeked(callback: () => void): void;
/**
* 取消監(jiān)聽音頻完成跳轉(zhuǎn)操作的事件
*/
offSeeked(callback: () => void): void;
/**
* 取消監(jiān)聽音頻播放事件
*/
offPlay(callback: () => void): void;
/**
* 取消監(jiān)聽音頻播放進(jìn)度更新事件
*/
offTimeUpdate(callback: () => void): void;
/**
* 監(jiān)聽音頻進(jìn)入可以播放狀態(tài)的事件
*/
onCanplay(callback: () => void): void;
/**
* 取消監(jiān)聽音頻播放錯(cuò)誤事件
*/
offError(callback: () => void): void;
/**
* 停止纤掸。停止后的音頻再播放會(huì)從頭開始播放。
*/
pause(): void;
/**
* 播放
*/
play(): void;
/**
* 跳轉(zhuǎn)到指定位置浑塞,單位 s
*/
seek(position: number): void;
}
/**
* 創(chuàng)建內(nèi)部 audio 上下文 InnerAudioContext 對(duì)象借跪。
*/
function createInnerAudioContext(): InnerAudioContext;
/**
* 從本地相冊(cè)選擇圖片或使用相機(jī)拍照。
*/
function chooseImage(object: {
count: 9,
sizeType?: ['original', 'compressed'],
sourceType?: ['album', 'camera'],
success?: (res: {
tempFilePaths: Array<string>,
tempFiles: Array<{ path: string, size: number }>
}) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/**
* 預(yù)覽圖片
*/
function previewImage(object: { urls: string[], current?: string, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 保存圖片到系統(tǒng)相冊(cè)酌壕。
*/
function saveImageToPhotosAlbum(object: { filePath: string, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**全局唯一的錄音管理器 */
interface RecorderManager {
/**
* 監(jiān)聽錄音暫停事件
*/
onPause(callback: () => void): void;
/**
* 監(jiān)聽錄音結(jié)束事件
*/
onStop(callback: (res: { tempFilePath: string }) => void): void;
/**
* 監(jiān)聽已錄制完指定幀大小的文件事件掏愁。如果設(shè)置了 frameSize,則會(huì)回調(diào)此事件卵牍。
*/
onFrameRecorded(callback: (res: { frameBuffer: ArrayBuffer, isLastFrame: boolean }) => void): void;
/**
* 監(jiān)聽錄音錯(cuò)誤事件
*/
onError(callback: (res: { errMsg: string }) => void): void;
/**
* 監(jiān)聽錄音開始事件
*/
onStart(callback: () => void): void;
/**
* 監(jiān)聽錄音因?yàn)槭艿较到y(tǒng)占用而被中斷開始事件果港。以下場(chǎng)景會(huì)觸發(fā)此事件:微信語音聊天、微信視頻聊天糊昙。此事件觸發(fā)后辛掠,錄音會(huì)被暫停。pause 事件在此事件后觸發(fā)
*/
onInterruptionBegin(callback: () => void): void;
/**
* 監(jiān)聽錄音中斷結(jié)束事件释牺。在收到 interruptionBegin 事件之后萝衩,小程序內(nèi)所有錄音會(huì)暫停,收到此事件之后才可再次錄音成功没咙。
*/
onInterruptionEnd(callback: () => void): void;
/**
* 監(jiān)聽錄音繼續(xù)事件
*/
onResume(callback: () => void): void;
/**
* 暫停錄音
*/
pause(): void;
/**
* 繼續(xù)錄音
*/
resume(): void;
/**
* 停止錄音
*/
stop(): void;
/**
* 開始錄音
*/
start(object: { duration?: number, sampleRate?: number, numberOfChannels?: number, encodeBitRate?: number, format?: string, frameSize?: number, audioSource?: string }): void;
}
/**
* 獲取全局唯一的錄音管理器 RecorderManager
*/
function getRecorderManager(): RecorderManager;
/** 視頻對(duì)象*/
interface Video {
/** 視頻的左上角橫坐標(biāo)*/
x: number;
/** 視頻的左上角縱坐標(biāo)*/
y: number;
/** 視頻的寬度*/
width: number;
/** 視頻的高度*/
height: number;
/** 視頻的資源地址*/
src: number;
/** 視頻的封面*/
poster: number;
/** 視頻的初始播放位置猩谊,單位為 s 秒*/
initialTime: number;
/** 視頻的播放速率,有效值有 0.5祭刚、0.8牌捷、1.0墙牌、1.25、1.5*/
playbackRate: number;
/** 視頻是否為直播*/
live: number;
/** 視頻的縮放模式*/
objectFit: number;
/** 視頻是否顯示控件*/
controls: number;
/** 視頻是否自動(dòng)播放*/
autoplay: number;
/** 視頻是否是否循環(huán)播放*/
loop: number;
/** 視頻是否禁音播放*/
muted: number;
/** 是否啟用手勢(shì)控制播放進(jìn)度*/
enableProgressGesture: boolean;
/** 是否顯示視頻中央的播放按鈕*/
showCenterPlayBtn: boolean;
/** 視頻開始緩沖時(shí)觸發(fā)的回調(diào)函數(shù)*/
onwaiting: () => void;
/** 視頻開始播放時(shí)觸發(fā)的回調(diào)函數(shù)*/
onplay: () => void;
/** 視頻暫停時(shí)觸發(fā)的回調(diào)函數(shù)*/
onpause: () => void;
/** 視頻播放到末尾時(shí)觸發(fā)的回調(diào)函數(shù)*/
onended: () => void;
/** 每當(dāng)視頻播放進(jìn)度更新時(shí)觸發(fā)的回調(diào)函數(shù)*/
ontimeupdate: () => void;
/** 視頻發(fā)生錯(cuò)誤時(shí)觸發(fā)的回調(diào)函數(shù)*/
onerror: () => void;
/**
* 視頻退出全屏
*/
exitFullScreen(): Promise<Object>;
/**
* 取消監(jiān)聽視頻暫停事件
*/
offPause(callback: () => void): void;
/**
* 監(jiān)聽視頻播放到末尾事件
*/
onEnded(callback: () => void): void;
/**
* 取消監(jiān)聽視頻播放到末尾事件
*/
offEnded(callback: () => void): void;
/**
* 監(jiān)聽視頻播放進(jìn)度更新事件
*/
onTimeUpdate(callback: (res: { position: number, duration: number }) => void): void;
/**
* 取消監(jiān)聽視頻播放進(jìn)度更新事件
*/
offTimeUpdate(callback: () => void): void;
/**
* 監(jiān)聽視頻錯(cuò)誤事件
*/
onError(callback: (res: { errMsg: string }) => void): void;
/**
* 取消監(jiān)聽視頻錯(cuò)誤事件
*/
offError(callback: () => void): void;
/**
* 監(jiān)聽視頻播放事件
*/
onPlay(callback: () => void): void;
/**
* 監(jiān)聽視頻暫停事件
*/
onPause(callback: () => void): void;
/**
* 取消監(jiān)聽視頻緩沖事件
*/
offWaiting(callback: () => void): void;
/**
* 監(jiān)聽視頻緩沖事件
*/
onWaiting(callback: () => void): void;
/**
* 取消監(jiān)聽視頻播放事件
*/
offPlay(callback: () => void): void;
/**
* 暫停視頻
*/
pause(): Promise<any>;
/**
* 播放視頻
*/
play(): Promise<any>;
/**
* 視頻全屏
*/
requestFullScreen(): Promise<any>;
/**
* 視頻跳轉(zhuǎn)
*/
seek(time: number): Promise<any>;
/**
* 停止視頻
*/
stop(): Promise<Object>;
}
/**
* 創(chuàng)建視頻
*/
function createVideo(object: {
x?: number, y?: number,
width?: number, height?: number,
src: number, poster: number,
initialTime?: number, playbackRate?: number,
live?: number, objectFit?: number,
controls?: number, autoplay?: number,
loop?: number, muted?: number,
enableProgressGesture: boolean,
showCenterPlayBtn: boolean
}): Video;
/**
* 獲取當(dāng)前的地理位置暗甥、速度喜滨。當(dāng)用戶離開小程序后,此接口無法調(diào)用淋袖;當(dāng)用戶點(diǎn)擊“顯示在聊天頂部”時(shí)鸿市,此接口可繼續(xù)調(diào)用。
*/
function getLocation(object: {
type?: string, altitude: string,
success?: (res: {
latitude: number,
longitude: number,
speed: number,
accuracy: number,
altitude: number,
verticalAccuracy: number,
horizontalAccuracy: number
}) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/** 文件管理器*/
interface FileSystemManager {
/**
* 判斷文件/目錄是否存在
*/
access(object: {
path: string,
success?: (res?: any) => void,
fail?: (res?: { errMsg: string }) => void,
complete?: (res?: any) => void
}): void;
/**
* FileSystemManager.access 的同步版本
*/
accessSync(path: string): void;
/** 在文件結(jié)尾追加內(nèi)容*/
appendFile(filePath: string,
data: string | ArrayBuffer,
encoding: string,
success?: (res?: any) => void,
fail?: (res: { errMsg: string }) => void,
complete?: (res?: any) => void): void;
/** appendFile同步版本*/
appendFileSync(filePath: string, data: string | ArrayBuffer, encoding: string): void;
/**
* 保存臨時(shí)文件到本地即碗。此接口會(huì)移動(dòng)臨時(shí)文件焰情,因此調(diào)用成功后,tempFilePath 將不可用剥懒。
*/
saveFile(object: { tempFilePath: string, filePath?: string, success?: (res: { savedFilePath: number }) => void, fail?: (res: { errMsg: string }) => void, complete?: (res?: any) => void }): void;
/**
* FileSystemManager.saveFile 的同步版本
*/
saveFileSync(tempFilePath: string, filePath: string): number;
/**
* 獲取該小程序下已保存的本地緩存文件列表
*/
getSavedFileList(object: { success?: (res: { fileList: Array<{ filePath: string, size: number, createTime: number }> }) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 刪除該小程序下已保存的本地緩存文件
*/
removeSavedFile(object: { filePath: string, success?: (res?: any) => void, fail?: (res: { errMsg: string }) => void, complete?: (res?: any) => void }): void;
/**
* 復(fù)制文件
*/
copyFile(object: { srcPath: string, destPath: string, success?: (res?: any) => void, fail?: (res: { errMsg: string }) => void, complete?: (res?: any) => void }): void;
/**
* FileSystemManager.copyFile 的同步版本
*/
copyFileSync(srcPath: string, destPath: string): void;
/**
* 獲取該小程序下的 本地臨時(shí)文件 或 本地緩存文件 信息
*/
getFileInfo(object: { filePath: string, success?: (res: { size: number }) => void, fail?: (res: { errMsg: string }) => void, complete?: (res?: any) => void }): void;
/**
* 創(chuàng)建目錄
*/
mkdir(object: { dirPath: string, recursive?: boolean, success?: (res?: any) => void, fail?: (res: { errMsg: string }) => void, complete?: (res?: any) => void }): void;
/**
* FileSystemManager.mkdir 的同步版本
*/
mkdirSync(dirPath: string): void;
/**
* 讀取本地文件內(nèi)容
*/
readFile(object: { filePath: string, encoding?: string, success?: (res: { data: string | ArrayBuffer }) => void, fail?: (res: { errMsg: string }) => void, complete?: (res?: any) => void }): void;
/**
* FileSystemManager.readFile 的同步版本
*/
readFileSync(filePath: string, encoding: string): string | ArrayBuffer;
/**
* 讀取目錄內(nèi)文件列表
*/
readdir(object: { dirPath: string, success?: (res: { files: Array<string> }) => void, fail?: (res: { errMsg: string }) => void, complete?: (res?: any) => void }): void;
/**
* FileSystemManager.readdir 的同步版本
*/
readdirSync(dirPath: string): string[];
/**
* 重命名文件内舟,可以把文件從 oldPath 移動(dòng)到 newPath
*/
rename(object: { oldPath: string, newPath: string, success?: (res?: any) => void, fail?: (res: { errMsg: string }) => void, complete?: (res?: any) => void }): void;
/**
* FileSystemManager.rename 的同步版本
*/
renameSync(oldPath: string, newPath: string): void;
/**
* 刪除目錄
*/
rmdir(object: { dirPath: string, recursive: boolean, success?: (res?: any) => void, fail?: (res: { errMsg: string }) => void, complete?: (res?: any) => void }): void;
/**
* FileSystemManager.rmdir 的同步版本
*/
rmdirSync(dirPath: string, recursive: boolean): void;
/**
* 獲取文件 Stats 對(duì)象
*/
stat(object: { path: string, recursive?: boolean, success?: (res: { stats: Stats | Object }) => void, fail?: (res: { errMsg: string }) => void, complete?: (res?: any) => void }): Stats;
/**
* FileSystemManager.stat 的同步版本
*/
statSync(path: string, recursive: boolean): Stats;
/**
* 刪除文件
*/
unlink(object: { filePath: string, success?: (res?: any) => void, fail?: (res: { errMsg: string }) => void, complete?: (res?: any) => void }): void;
/**
* 解壓文件
*/
unzip(object: { zipFilePath: string, targetPath: string, success?: (res?: any) => void, fail?: (res: { errMsg: string }) => void, complete?: (res?: any) => void }): void;
/**
* FileSystemManager.unlink 的同步版本
*/
unlinkSync(filePath: string): void;
/**
* 寫文件
*/
writeFile(object: { filePath: string, data: string | ArrayBuffer, encoding: string, success?: (res?: any) => void, fail?: (res: { errMsg: string }) => void, complete?: (res?: any) => void }): void;
/**
* FileSystemManager.writeFile 的同步版本
*/
writeFileSync(filePath: string, data: string | ArrayBuffer, encoding: string): void;
}
/** 描述文件狀態(tài)的對(duì)象*/
interface Stats {
/**
* 文件的類型和存取的權(quán)限,對(duì)應(yīng) POSIX stat.st_mode
*/
mode: string;
/**
* 文件大小初橘,單位:B验游,對(duì)應(yīng) POSIX stat.st_size
*/
size: number;
/**
* 文件最近一次被存取或被執(zhí)行的時(shí)間,UNIX 時(shí)間戳保檐,對(duì)應(yīng) POSIX stat.st_atime
*/
lastAccessedTime: number;
/**
* 文件最后一次被修改的時(shí)間耕蝉,UNIX 時(shí)間戳,對(duì)應(yīng) POSIX stat.st_mtime
*/
lastModifiedTime: number;
/**
* 判斷當(dāng)前文件是否一個(gè)目錄
*/
isDirectory(): boolean;
/**
* 判斷當(dāng)前文件是否一個(gè)普通文件
*/
isFile(): boolean;
}
/**
* 獲取全局唯一的文件管理器
*/
function getFileSystemManager(): FileSystemManager;
/** 打開另一個(gè)小程序*/
function navigateToMiniProgram(object: {
appId: string,
path?: string,
extraData?: {},
envVersion?: string,
success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void
}): void;
/**
* 用戶信息
*/
interface UserInfo {
/** 用戶昵稱*/
nickName: string;
/** 用戶頭像圖片的 URL夜只。URL 最后一個(gè)數(shù)值代表正方形頭像大欣菰凇(有 0、46扔亥、64场躯、96、132 數(shù)值可選旅挤,0 代表 640x640 的正方形頭像踢关,46 表示 46x46 的正方形頭像,剩余數(shù)值以此類推粘茄。默認(rèn)132)签舞,用戶沒有頭像時(shí)該項(xiàng)為空。若用戶更換頭像柒瓣,原有頭像 URL 將失效瘪菌。*/
avatarUrl: string;
/** 用戶性別*/
gender: 0 | 1 | 2;
/** 用戶所在國(guó)家*/
country: string;
/** 用戶所在省份*/
province: string;
/** 用戶所在城市*/
city: string;
/** 顯示 country,province嘹朗,city 所用的語言*/
language: 'en' | 'zh_CN' | 'zh_TW'
}
/**
* 調(diào)用前需要 用戶授權(quán) scope.userInfo师妙。
* 獲取用戶信息。
*/
function getUserInfo(object: {
withCredentials?: boolean, lang?: string, success?: (res: {
?
userInfo: UserInfo,
rawData: string,
signature: string,
encryptedData: string,
iv: string
}) => void, fail?: (res?: any) => void, complete?: (res?: any) => void
}): void;
/** 用戶信息按鈕*/
interface UserInfoButton {
/** 按鈕的類型*/
type: 'text' | 'image';
/** 按鈕上的文本屹培,僅當(dāng) type 為 text 時(shí)有效*/
text: string;
/** 按鈕的背景圖片默穴,僅當(dāng) type 為 image 時(shí)有效*/
image: string;
/** 按鈕的樣式*/
style: {
left: number,
top: number,
width: number,
height: number,
backgroundColor: string,
borderColor: string,
borderWidth: number,
borderRadius: number,
textAlign: string,
fontSize: number,
lineHeight: number
},
/** 顯示用戶信息按鈕*/
show();
/** 隱藏用戶信息按鈕怔檩。*/
hide();
/** 銷毀用戶信息按鈕*/
destroy();
/** 監(jiān)聽用戶信息按鈕的點(diǎn)擊事件*/
onTap(callback: (res: {
userInfo: UserInfo,
rawData: string,
signature: string,
encryptedData: string,
iv: string
}) => void);
/** 取消監(jiān)聽用戶信息按鈕的點(diǎn)擊事件*/
offTap(callback: () => void);
}
/** 創(chuàng)建用戶信息按鈕*/
function createUserInfoButton(object: {
type: "text" | "image",
text?: string,
image?: string,
style: {
left: number,
top: number,
width: number,
height: number,
color?: string
backgroundColor?: string,
borderColor?: string,
borderWidth?: number,
borderRadius?: number,
textAlign?: "left" | "center" | "right",
fontSize?: number,
lineHeight?: number
},
withCredentials?: boolean,
lang?: "en" | "zh_CN" | "zh_TW"
}): UserInfoButton;
/**
* 通過 wx.login 接口獲得的用戶登錄態(tài)擁有一定的時(shí)效性。用戶越久未使用小程序蓄诽,用戶登錄態(tài)越有可能失效薛训。反之如果用戶一直在使用小程序,則用戶登錄態(tài)一直保持有效仑氛。具體時(shí)效邏輯由微信維護(hù)乙埃,對(duì)開發(fā)者透明。開發(fā)者只需要調(diào)用 wx.checkSession 接口檢測(cè)當(dāng)前用戶登錄態(tài)是否有效锯岖。登錄態(tài)過期后開發(fā)者可以再調(diào)用 wx.login 獲取新的用戶登錄態(tài)介袜。
*/
function checkSession(object: { success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/** 提前向用戶發(fā)起授權(quán)請(qǐng)求。調(diào)用后會(huì)立刻彈窗詢問用戶是否同意授權(quán)小程序使用某項(xiàng)功能或獲取用戶的某些數(shù)據(jù)出吹,但不會(huì)實(shí)際調(diào)用對(duì)應(yīng)接口遇伞。如果用戶之前已經(jīng)同意授權(quán),則不會(huì)出現(xiàn)彈窗捶牢,直接返回成功鸠珠。更多用法詳見 用戶授權(quán)。*/
function authorize(object: { scope: string, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 調(diào)用接口獲取登錄憑證(code)進(jìn)而換取用戶登錄態(tài)信息秋麸,包括用戶的唯一標(biāo)識(shí)(openid) 及本次登錄的 會(huì)話密鑰(session_key)等渐排。用戶數(shù)據(jù)的加解密通訊需要依賴會(huì)話密鑰完成。
*/
function login(object: { timeout?: number, success?: (res: { code: string }) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 只有開放數(shù)據(jù)域能調(diào)用灸蟆,獲取主域和開放數(shù)據(jù)域共享的 sharedCanvas
*/
function getSharedCanvas(): Canvas;
/** 托管的 KV 數(shù)據(jù)*/
interface KVData {
/** 數(shù)據(jù)的 key*/
key: string;
/** 數(shù)據(jù)的 value*/
value: string;
}
/** 托管數(shù)據(jù)*/
interface UserGameData {
/** 用戶的微信頭像 url*/
avatarUrl: string;
/** 用戶的微信昵稱*/
nickname: string;
/** 用戶的 openid*/
openid: string;
/** 用戶的托管 KV 數(shù)據(jù)列表*/
KVDataList: Array<KVData>;
}
/**
* 拉取當(dāng)前用戶所有同玩好友的托管數(shù)據(jù)驯耻。該接口只可在開放數(shù)據(jù)域下使用
*/
function getFriendCloudStorage(object: { keyList: string[], success?: (res: { data: Array<UserGameData> }) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 在小游戲是通過群分享卡片打開的情況下,可以通過調(diào)用該接口獲取群同玩成員的游戲數(shù)據(jù)次乓。該接口只可在開放數(shù)據(jù)域下使用吓歇。
*/
function getGroupCloudStorage(object: { shareTicket: string, keyList: string[], success?: (res: { data: Array<UserGameData> }) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 獲取當(dāng)前用戶托管數(shù)據(jù)當(dāng)中對(duì)應(yīng) key 的數(shù)據(jù)孽水。該接口只可在開放數(shù)據(jù)域下使用
*/
function getUserCloudStorage(object: { keyList: Array<string>, success?: (res: { KVDataList: Array<KVData> }) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 刪除用戶托管數(shù)據(jù)當(dāng)中對(duì)應(yīng) key 的數(shù)據(jù)票腰。
*/
function removeUserCloudStorage(object: { keyList: string[], success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/**
* 對(duì)用戶托管數(shù)據(jù)進(jìn)行寫數(shù)據(jù)操作,允許同時(shí)寫多組 KV 數(shù)據(jù)女气。
*/
function setUserCloudStorage(object: { KVDataList: Array<KVData>, success?: (res?: any) => void, fail?: (res?: any) => void, complete?: (res?: any) => void }): void;
/** 在無須用戶授權(quán)的情況下杏慰,批量獲取用戶信息。該接口只在開放數(shù)據(jù)域下可用*/
function getUserInfo(object: {
/** 要獲取信息的用戶的 openId 數(shù)組炼鞠,如果要獲取當(dāng)前用戶信息缘滥,則將數(shù)組中的一個(gè)元素設(shè)為 'selfOpenId'*/
openIdList?: Array<string>,
/** 顯示用戶信息的語言*/
lang?: 'en' | 'zh_CN' | 'zh_TW',
success?: (res: {
data: Array<{
avatarUrl: string,
city: string,
country: string,
gender: number,
language: string,
nickName: string,
openId: string,
province: string
}>
}) => void, fail?: (res?: any) => void, complete?: (res?: any) => void
}): void;
/**
* 監(jiān)聽主域發(fā)送的消息
*/
function onMessage(callback: () => void): void;
/** 開放數(shù)據(jù)域?qū)ο?/
interface OpenDataContext {
/** 開放數(shù)據(jù)域和主域共享的 sharedCanvas*/
canvas: Canvas;
/**
* 向開放數(shù)據(jù)域發(fā)送消息
* @param message {} 要發(fā)送的消息,message 中及嵌套對(duì)象中 key 的 value 只能是 primitive value谒主。即 number朝扼、string、boolean霎肯、null擎颖、undefined榛斯。
*/
postMessage(message: {}): void;
}
/**
* 獲取開放數(shù)據(jù)域
*/
function getOpenDataContext(): OpenDataContext;
/**
* 根據(jù)用戶當(dāng)天游戲時(shí)間判斷用戶是否需要休息
*/
function checkIsUserAdvisedToRest(object: {
todayPlayedTime: number,
success?: (res: { result: boolean }) => void,
fail?: (res?: any) => void, complete?: (res?: any) => void
}): void;
/**用戶點(diǎn)擊后打開意見反饋頁面的按鈕 */
interface FeedbackButton {
/** 按鈕的類型*/
type: 'text' | 'image';
text: string,
image: string,
style: {
left: number,
top: number,
width: number,
height: number,
backgroundColor: string,
borderColor: string,
borderWidth: number,
borderRadius: number,
textAlign: 'left' | 'center' | 'right',
fontSize: number,
lineHeight: number
},
/** 顯示意見反饋按鈕*/
show(): void;
/** 隱藏意見反饋按鈕。*/
hide(): void;
/** 銷毀意見反饋按鈕*/
destroy(): void;
/** 監(jiān)聽意見反饋按鈕的點(diǎn)擊事件*/
onTap(callback: () => void): void;
/** 取消監(jiān)聽意見反饋按鈕的點(diǎn)擊事件*/
offTap(callback: () => void): void;
}
/**
* 創(chuàng)建打開意見反饋頁面的按鈕
*/
function createFeedbackButton(object: {
type: 'text' | 'image',
text?: string,
image?: string,
style: {
left: number,
top: number,
width: number,
height: number,
backgroundColor: string,
borderColor: string,
borderWidth: number,
borderRadius: number,
textAlign: 'left' | 'center' | 'right',
fontSize: number,
lineHeight: number
}
}): FeedbackButton;
/** 用戶授權(quán)設(shè)置信息搂捧,詳情參考權(quán)限*/
interface AuthSetting {
/** 是否授權(quán)用戶信息驮俗,對(duì)應(yīng)接口 wx.getUserInfo*/
userInfo: boolean;
/** 是否授權(quán)地理位置,對(duì)應(yīng)接口 wx.getLocation*/
userLocation: boolean;
/** 是否授權(quán)微信運(yùn)動(dòng)步數(shù)允跑,對(duì)應(yīng)接口 wx.getWeRunData*/
werun: boolean;
/** 是否授權(quán)保存到相冊(cè) wx.saveImageToPhotosAlbum*/
writePhotosAlbum: boolean;
}
/** 調(diào)起客戶端小程序設(shè)置界面王凑,返回用戶設(shè)置的操作結(jié)果。設(shè)置界面只會(huì)出現(xiàn)小程序已經(jīng)向用戶請(qǐng)求過的權(quán)限聋丝。*/
function openSetting(object: {
success?: (res: { authSetting: AuthSetting }) => void,
fail?: (res?: any) => void, complete?: (res?: any) => void
}): void;
/** 獲取用戶的當(dāng)前設(shè)置索烹。返回值中只會(huì)出現(xiàn)小程序已經(jīng)向用戶請(qǐng)求過的權(quán)限。*/
function getSetting(object: {
success?: (res: { authSetting: AuthSetting }) => void,
fail?: (res?: any) => void, complete?: (res?: any) => void
}): void;
/**
* 用戶點(diǎn)擊后打開設(shè)置頁面的按鈕
*/
interface OpenSettingButton {
type: 'text' | 'image';
text: string,
image: string,
style: {
left: number,
top: number,
width: number,
height: number,
backgroundColor: string,
borderColor: string,
borderWidth: number,
borderRadius: number,
textAlign: 'left' | 'center' | 'right',
fontSize: number,
lineHeight: number
},
show(): void;
hide(): void;
destroy(): void;
onTap(callback: () => void): void;
offTap(callback: () => void): void;
}
/** 創(chuàng)建打開設(shè)置頁面的按鈕*/
function createOpenSettingButton(object: {
type: 'text' | 'image',
text?: string,
image?: string,
style: {
left: number,
top: number,
width: number,
height: number,
backgroundColor: string,
borderColor: string,
borderWidth: number,
borderRadius: number,
textAlign: 'left' | 'center' | 'right',
fontSize: number,
lineHeight: number
},
show(): void;
hide(): void;
destroy(): void;
onTap(callback: () => void): void;
offTap(callback: () => void): void;
}): OpenSettingButton;
/** 游戲圈按鈕潮针。游戲圈按鈕被點(diǎn)擊后會(huì)跳轉(zhuǎn)到小游戲的游戲圈术荤。更多關(guān)于游戲圈的信息見 游戲圈使用指南*/
interface GameClubButton {
type: 'text' | 'image',
text?: string,
image?: string,
style: {
left: number,
top: number,
width: number,
height: number,
backgroundColor: string,
borderColor: string,
borderWidth: number,
borderRadius: number,
textAlign: 'left' | 'center' | 'right',
fontSize: number,
lineHeight: number
},
icon: 'green' | 'white' | 'dark' | 'light'
}
/** 創(chuàng)建游戲圈按鈕。游戲圈按鈕被點(diǎn)擊后會(huì)跳轉(zhuǎn)到小游戲的游戲圈每篷。更多關(guān)于游戲圈的信息見 游戲圈使用指南*/
function createGameClubButton(object: {
type: 'text' | 'image',
text?: string,
image?: string,
style: {
left: number,
top: number,
width: number,
height: number,
backgroundColor: string,
borderColor: string,
borderWidth: number,
borderRadius: number,
textAlign: 'left' | 'center' | 'right',
fontSize: number,
lineHeight: number
},
icon: 'green' | 'white' | 'dark' | 'light'
}): GameClubButton;
/** 進(jìn)入客服會(huì)話瓣戚。要求在用戶發(fā)生過至少一次 touch 事件后才能調(diào)用。后臺(tái)接入方式與小程序一致焦读,詳見 客服消息接入*/
function openCustomerServiceConversation(object: {
sessionFrom?: string,
showMessageCard?: boolean,
sendMessageTitle?: string,
sendMessagePath?: string,
sendMessageImg?: string,
success?: (res?: any) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/** 獲取用戶過去三十天微信運(yùn)動(dòng)步數(shù)子库。需要先調(diào)用 wx.login 接口。步數(shù)信息會(huì)在用戶主動(dòng)進(jìn)入小程序時(shí)更新矗晃。*/
function getWeRunData(object: {
success?: (res: { encryptedData: string, iv: string }) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/** 取消監(jiān)聽橫豎屏切換事件*/
function offDeviceOrientationChange(callback: () => void): void;
/** 監(jiān)聽橫豎屏切換事件*/
function onDeviceOrientationChange(callback: (res: { value: 'portrait' | 'landscape' | 'landscapeReverse' }) => void): void;
/** 監(jiān)聽加速度數(shù)據(jù)事件仑嗅。頻率根據(jù) wx.startAccelerometer() 的 interval 參數(shù)≌胖ⅲ可使用 wx.stopAccelerometer() 停止監(jiān)聽仓技。*/
function onAccelerometerChange(callback: (res: { x: number, y: number, z: number }) => void): void;
/** 停止監(jiān)聽加速度數(shù)據(jù)。*/
function stopAccelerometer(object: {
success?: (res: { encryptedData: string, iv: string }) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/** 開始監(jiān)聽加速度數(shù)據(jù)俗他。*/
function startAccelerometer(object: {
interval: string,
success?: (res: { encryptedData: string, iv: string }) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/**
* 獲取設(shè)備電量
*/
function getBatteryInfo(object: {
success?: (res: { level: string, isCharging: boolean }) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/**
* wx.getBatteryInfo 的同步版本
*/
function getBatteryInfoSync(): { level: string, isCharging: boolean };
/** 獲取系統(tǒng)剪貼板的內(nèi)容*/
function getClipboardData(object: {
success?: (res: { data: string }) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/** 設(shè)置系統(tǒng)剪貼板的內(nèi)容*/
function setClipboardData(object: {
data: string,
success?: (res?: any) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/**
* 監(jiān)聽羅盤數(shù)據(jù)脖捻,頻率:5 次/秒,接口調(diào)用后會(huì)自動(dòng)開始監(jiān)聽兆衅,可使用 wx.stopCompass 停止監(jiān)聽地沮。
* accuracy 在 iOS/Android 的差異
* 由于平臺(tái)差異,accuracy 在 iOS/Android 的值不同羡亩。
* iOS:accuracy 是一個(gè) number 類型的值摩疑,表示相對(duì)于磁北極的偏差。0 表示設(shè)備指向磁北畏铆,90 表示指向東雷袋,180 表示指向南,依此類推辞居。
* Android:accuracy 是一個(gè) string 類型的枚舉值楷怒。
*/
function onCompassChange(callback: (res: { direction: number, accuracy: number | string }) => void): void;
/**
* 開始監(jiān)聽陀螺儀數(shù)據(jù)寨腔。
*/
function startCompass(object: {
interval?: string,
success?: (res?: any) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/**
* 停止監(jiān)聽陀螺儀數(shù)據(jù)。
*/
function stopCompass(object: {
success?: (res?: any) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/**
* 監(jiān)聽設(shè)備方向變化事件率寡。頻率根據(jù) wx.startDeviceMotionListening() 的 interval 參數(shù)迫卢。可以使用 wx.stopDeviceMotionListening() 停止監(jiān)聽冶共。
*/
function onDeviceMotionChange(callback: (res: {
alpha: number,
beta: number,
gamma: number,
}) => void): void;
/** 停止監(jiān)聽設(shè)備方向的變化乾蛤。*/
function stopDeviceMotionListening(
success?: (res?: any) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
): void;
/** 開始監(jiān)聽設(shè)備方向的變化。*/
function startDeviceMotionListening(
interval: string,
success?: (res?: any) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
): void;
/** 監(jiān)聽網(wǎng)絡(luò)狀態(tài)變化事件*/
function onNetworkStatusChange(callback: (res: { isConnected: boolean, networkType: string }) => void): void;
/** 獲取網(wǎng)絡(luò)類型*/
function getNetworkType(object: {
success?: (res: { networkType: string }) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/** 使手機(jī)發(fā)生較長(zhǎng)時(shí)間的振動(dòng)(400 ms)*/
function vibrateLong(object: {
success?: (res?: any) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/** 使手機(jī)發(fā)生較短時(shí)間的振動(dòng)(15 ms)捅僵。僅在 iPhone 7 / 7 Plus 以上及 Android 機(jī)型生效*/
function vibrateShort(object: {
success?: (res?: any) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/**
* 監(jiān)聽內(nèi)存不足告警事件家卖。
* 當(dāng) iOS/Android 向小程序進(jìn)程發(fā)出內(nèi)存警告時(shí),觸發(fā)該事件庙楚。觸發(fā)該事件不意味小程序被殺上荡,大部分情況下僅僅是告警,開發(fā)者可在收到通知后回收一些不必要資源避免進(jìn)一步加劇內(nèi)存緊張馒闷。
*/
function onMemoryWarning(callback: (res: { level: number }) => void): void;
/** 設(shè)置屏幕亮度*/
function setScreenBrightness(object: {
value: number,
success?: (res?: any) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/** 設(shè)置是否保持常亮狀態(tài)酪捡。僅在當(dāng)前小程序生效,離開小程序后設(shè)置失效纳账。*/
function setKeepScreenOn(object: {
keepScreenOn: boolean,
success?: (res?: any) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/** 獲取屏幕亮度*/
function getScreenBrightness(object: {
success?: (res: { value: number }) => void,
fail?: (res?: any) => void,
complete?: (res?: any) => void
}): void;
/**
* 對(duì)于游戲來說逛薇,每幀 16ms 是極其寶貴的,如果有一些可以異步處理的任務(wù)疏虫,可以放置于 Worker 中運(yùn)行永罚,待運(yùn)行結(jié)束后,再把結(jié)果返回到主線程卧秘。Worker 運(yùn)行于一個(gè)單獨(dú)的全局上下文與線程中呢袱,不能直接調(diào)用主線程的方法,Worker 也不具備渲染的能力翅敌。 Worker 與主線程之間的數(shù)據(jù)傳輸羞福,雙方使用 Worker.postMessage() 來發(fā)送數(shù)據(jù),Worker.onMessage() 來接收數(shù)據(jù)哼御,傳輸?shù)臄?shù)據(jù)并不是直接共享坯临,而是被復(fù)制的焊唬。
* @see https://developers.weixin.qq.com/minigame/dev/tutorial/usability/worker.html
*/
interface Worker {
/**
* 監(jiān)聽接收主線程/Worker 線程向當(dāng)前線程發(fā)送的消息
*/
onMessage(callback: (res: { message: Object }) => void): void;
/**
* 向主線程/Worker 線程發(fā)送的消息恋昼。
*/
postMessage(message: {}): void;
/**
* 結(jié)束當(dāng)前 worker 線程,僅限在主線程 worker 對(duì)象上調(diào)用赶促。
*/
terminate(): void;
}
/**
* 創(chuàng)建一個(gè) Worker 線程液肌,目前限制最多只能創(chuàng)建一個(gè) Worker,創(chuàng)建下一個(gè) Worker 前請(qǐng)調(diào)用 Worker.terminate
*/
function createWorker(scriptPath: string): Worker;
/**
* 云開發(fā)小程序端
*/
namespace cloud {
/** 在調(diào)用云開發(fā)各 API 前鸥滨,需先調(diào)用初始化方法 init 一次(全局只需一次嗦哆,多次調(diào)用時(shí)只有第一次生效)*/
function init(options?: { env?: string | { database?: string, storage?: string, functions?: string }, traceUser?: false }): void;
/** 調(diào)用云函數(shù)*/
function callFunction(obj: { name: string, data?: Object, config?: cloudEnvType, success: (res: { errMsg: string, result: any, requestID: string }) => void, fail?: cloudCallFailType, complete?: cloudEmptyFunction }): void;
function callFunction(obj: { name: string, data?: Object, config?: cloudEnvType, success?: (res: { errMsg: string, result: any, requestID: string }) => void, fail: cloudCallFailType, complete?: cloudEmptyFunction }): void;
function callFunction(obj: { name: string, data?: Object, config?: cloudEnvType, success?: (res: { errMsg: string, result: any, requestID: string }) => void, fail?: cloudCallFailType, complete: cloudEmptyFunction }): void;
function callFunction(obj: { name: string, data?: Object, config?: cloudEnvType }): Promise<{ errMsg: string, result: any, requestID: string }>;
/** 將本地資源上傳至云存儲(chǔ)空間谤祖,如果上傳至同一路徑則是覆蓋寫*/
function uploadFile(obj: { cloudPath: string, filePath: string, header?: Object, config?: cloudEnvType, success: (res: { fileID: string, statusCode: number, errMsg: string }) => void, fail?: cloudCallFailType, complete?: cloudEmptyFunction }): void;
function uploadFile(obj: { cloudPath: string, filePath: string, header?: Object, config?: cloudEnvType, success?: (res: { fileID: string, statusCode: number, errMsg: string }) => void, fail: cloudCallFailType, complete?: cloudEmptyFunction }): void;
function uploadFile(obj: { cloudPath: string, filePath: string, header?: Object, config?: cloudEnvType, success?: (res: { fileID: string, statusCode: number, errMsg: string }) => void, fail?: cloudCallFailType, complete: cloudEmptyFunction }): void;
function uploadFile(obj: { cloudPath: string, filePath: string, header?: Object, config?: cloudEnvType }): Promise<{ fileID: string, statusCode: number, errMsg: string }>;
/** 從云存儲(chǔ)空間下載文件*/
function downloadFile(obj: { fileID: string, config?: cloudEnvType, success: (res: { tempFilePath: string, statusCode: number, errMsg: string }) => void, fail?: cloudCallFailType, complete?: cloudEmptyFunction }): void;
function downloadFile(obj: { fileID: string, config?: cloudEnvType, success?: (res: { tempFilePath: string, statusCode: number, errMsg: string }) => void, fail: cloudCallFailType, complete?: cloudEmptyFunction }): void;
function downloadFile(obj: { fileID: string, config?: cloudEnvType, success?: (res: { tempFilePath: string, statusCode: number, errMsg: string }) => void, fail?: cloudCallFailType, complete: cloudEmptyFunction }): void;
function downloadFile(obj: { cloudPath: string, filePath: string, header?: Object, config?: cloudEnvType }): Promise<{ tempFilePath: string, statusCode: number, errMsg: string }>;
/** 用云文件 ID 換取真實(shí)鏈接,可自定義有效期老速,默認(rèn)一天且最大不超過一天粥喜。一次最多取 50 個(gè)。*/
function getTempFileURL(obj: { fileList: string[], config?: cloudEnvType, success: (fileList: Array<{ fileID: string, tempFileURL: string, status: number, errMsg: string }>) => void, fail?: cloudCallFailType, complete?: cloudEmptyFunction }): void;
function getTempFileURL(obj: { fileList: string[], config?: cloudEnvType, success?: (fileList: Array<{ fileID: string, tempFileURL: string, status: number, errMsg: string }>) => void, fail: cloudCallFailType, complete?: cloudEmptyFunction }): void;
function getTempFileURL(obj: { fileList: string[], config?: cloudEnvType, success?: (fileList: Array<{ fileID: string, tempFileURL: string, status: number, errMsg: string }>) => void, fail?: cloudCallFailType, complete: cloudEmptyFunction }): void;
function getTempFileURL(obj: { fileList: string[], config?: cloudEnvType }): Promise<Array<{ fileID: string, tempFileURL: string, status: number, errMsg: string }>>;
/** 從云存儲(chǔ)空間刪除文件橘券,一次最多 50 個(gè)*/
function deleteFile(obj: { fileList: string[], config?: cloudEnvType, success: (fileList: Array<{ fileID: string, status: number, errMsg: string }>) => void, fail?: cloudCallFailType, complete?: cloudEmptyFunction }): void;
function deleteFile(obj: { fileList: string[], config?: cloudEnvType, success?: (fileList: Array<{ fileID: string, status: number, errMsg: string }>) => void, fail: cloudCallFailType, complete?: cloudEmptyFunction }): void;
function deleteFile(obj: { fileList: string[], config?: cloudEnvType, success?: (fileList: Array<{ fileID: string, status: number, errMsg: string }>) => void, fail?: cloudCallFailType, complete: cloudEmptyFunction }): void;
function deleteFile(obj: { fileList: string[], config?: cloudEnvType }): Promise<Array<{ fileID: string, status: number, errMsg: string }>>;
//============== 數(shù)據(jù)庫 API 手動(dòng)添加的额湘,可能有錯(cuò)誤,請(qǐng) pr==============
function database(options?: cloudEnvType): Database;
}
}
/** */
type cloudEnvType = { env: string }
/** */
type cloudCallFailType = (err: { errCode: string, errMsg: string }) => void;
/** */
type cloudEmptyFunction = () => void;
interface Database {
command: Command;
serverDate(options?: object): ServerDate;
Geo: Geo;
createCollection: Promise<CreateCollectionSuccess>;
collection(name: string): Collection;
RegExp(options: RegExpOptions): DBRegExp;
}
type DBRegExp = RegExp;
type ServerDate = Date;
interface RegExpOptions {
regexp: string; // 正則表達(dá)式旁舰,字符串形式
options: "i" | "m" | "s"; // flags锋华,包括 i, m, s 但前端不做強(qiáng)限制
}
interface Query {
get(): Promise<GetCollectionResult>;
update(options: CommonOption): Promise<UpateCollectionResult>;
remove(): Promise<RemoveCollectionResult>;
count(): Promise<CountCollectionResult>;
orderBy(fieldName: string, order: "asc" | "desc"): Collection | Query;
limit(max: number): Collection | Query;
skip(offset: number): Collection | Query;
field(definition: object): Collection | Query | Document;
}
interface Collection extends Query {
doc(id: string | number): Document;
add(options: CommonOption): Promise<AddCollectionResult>;
where(rule: object): Query;
aggregate(): Aggregate;
}
interface CommonOption<T = any> {
data: T;
}
interface GetCollectionResult {
data: any[];
}
interface AddCollectionResult {
_id: string | number;
}
interface UpateCollectionResult {
stats: {
updated: number;
};
}
interface RemoveCollectionResult {
stats: {
removed: number;
};
}
interface CountCollectionResult {
stats: {
total: number;
};
}
interface Document {
get(): Promise<{ data: any }>;
update(options: CommonOption): Promise<{ stats: { updated: 0 | 1 } }>;
set(
options: CommonOption
): Promise<{
_id: string | number;
stats: { updated: 0 | 1; created: 0 | 1 };
}>;
remove(): Promise<{ stats: { removed: 0 | 1 } }>;
}
// collection(name: string): Collection
interface Command {
eq(value: any): Command;
neq(value: any): Command;
lt(value: number): Command;
lte(value: number): Command;
gt(value: number): Command;
gte(value: number): Command;
in(values: any[]): Command;
nin(values: any[]): Command;
and(command: Command): Command;
and(...commands: Command[]): Command;
or(command: Command | CrosFieldCommand[]): Command;
or(...commands: Command[]): Command;
set(value: any): Command;
remove(): Command;
inc(value: number): Command;
mul(value: number): Command;
push(values: any[]): Command;
pop(): Command;
shift(): Command;
unshift(values: any[]): Command;
geoNear(options: GeoNearOptions): Command;
geoWithin(options: GeoWithinOptions): Command;
geoIntersects(options: GeoIntersectsOptions): Command;
// aggregate: AggregationOperators
aggregate: any;
}
interface CrosFieldCommand {
[filed: string]: Command | boolean;
}
interface GeoNearOptions {
geometry: Point; // 點(diǎn)的地理位置
maxDistance?: number; // 選填,最大距離箭窜,單位為米
minDistance?: number; // 選填毯焕,最小距離,單位為米
}
interface GeoWithinOptions {
geometry: Polygon | MultiPolygon;
}
interface GeoIntersectsOptions {
geometry:
| Point
| LineString
| MultiPoint
| MultiLineString
| Polygon
| MultiPolygon; // 地理位置
}
interface Geo {
Point: Point;
LineString: LineString;
Polygon: Polygon;
}
interface Point {
(longitude: number, latitude: number): Point;
}
type PointCoordinates = [number, number];
interface Point {
type: "Point";
coordinates: PointCoordinates;
}
interface LineString {
(points: Point[]): LineString;
}
interface LineString {
type: "LineString";
coordinates: PointCoordinates[];
}
interface Polygon {
(lineStrings: LineString[]): Polygon;
}
interface Polygon {
type: "Polygon";
coordinates: PointCoordinates[][];
}
interface MultiPoint {
(points: Point[]): MultiPoint;
}
interface MultiPoint {
type: "MultiPoint";
coordinates: PointCoordinates[];
}
interface MultiLineString {
(polygons: LineString[]): MultiLineString;
}
interface MultiLineString {
type: "MultiLineString";
coordinates: PointCoordinates[][];
}
interface MultiPolygon {
(polygons: Polygon[]): MultiPolygon;
}
interface MultiPolygon {
type: "MultiPolygon";
coordinates: PointCoordinates[][][];
}
// interface GeoJSON<T> {
// type: T;
// coordinates: [];
// }
interface CreateCollectionSuccess {
errMsg: string;
}
interface Aggregate {
addFields(fieldObj: { [fieldName: string]: any }): Aggregate;
bucket(bucketObj: {
groupBy: any;
boundaries: any[];
default?: any;
output?: object;
}): Aggregate;
bucketAuto(bucketObj: {
groupBy: any;
buckets: number;
granularity?: any;
output?: object;
}): Aggregate;
count(expr: string): any;
geoNear(geoNearObj: {
near: Point;
spherical: true;
limit?: number;
maxDistance?: number;
minDistance?: number;
query?: object;
distanceMultiplier?: number;
distanceField: string;
includeLocs?: string;
key?: string;
}): Aggregate;
group(groupObj: { _id: any;[fieldName: string]: any }): Aggregate;
limit(limitRecords: number): any;
match(matchObj: { [fieldName: string]: any }): Aggregate;
project(projectObj: { [fieldName: string]: any }): Aggregate;
replaceRoot(replaceRootObj: { newRoot: any }): Aggregate;
sample(replaceRootObj: { size: number }): Aggregate;
skip(skipNum: number): any;
sort(replaceRootObj: { [fieldName: string]: 1 | -1 }): Aggregate;
sortByCount(fieldName: string): Aggregate;
unwind(unwindObj: {
path: string;
includeArrayIndex?: string;
preserveNullAndEmptyArrays?: boolean;
}): Aggregate;
end(): void;
}
// type
interface AggregationOperators {
abs(operand: number): number;
add(...operand: any[]): any;
addToSet(expression: string): any;
allElementsTrue(expression: [string]): boolean;
and(expression: boolean[]): boolean;
lt(expression: string, value: number): boolean;
lte(expression: string, value: number): boolean;
anyElementTrue(expression: [string]): boolean;
arrayElemAt(expression: [string, number]): any;
arrayToObject(expression: string): object;
// arrayToObject(expression: [string, any][]): object
// arrayToObject(expression: {k: string; v: any}[]): object
avg(expression: string): number;
}
// /**
// * 基礎(chǔ)庫 2.0.0 開始支持磺樱,低版本需做兼容處理纳猫。
// * 將一個(gè) Canvas 對(duì)應(yīng)的 Texture 綁定到 WebGL 上下文。
// */
// declare var WebGLRenderingContext: {
// /**
// *
// * @param texture WebGL 的紋理類型枚舉值
// * @param canvas 需要綁定為 Texture 的 Canvas
// */
// wxBindCanvasTexture: (texture: number, canvas: wx.Canvas) => void
// }