kunpolibrary/libs/lib.wx.api.d.ts

662 lines
27 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @Author: Gongxh
* @Date: 2025-03-28
* @Description:
*/
declare namespace WechatMiniprogram {
type IAnyObject = Record<string, any>
interface ICommonCallBack {
/**
* 接口调用成功的回调函数
*/
success?: () => void;
/**
* 接口调用失败的回调函数
*/
fail?: () => void;
/**
* 接口调用结束的回调函数(调用成功、失败都会执行)
*/
complete?: () => void;
}
interface GeneralCallbackResult {
/** 错误信息 */
errMsg: string
}
interface ConnectSocketOption extends ICommonCallBack {
/** 开发者服务器 wss 接口地址 */
url: string
/** HTTP HeaderHeader 中不能设置 Referer */
header?: IAnyObject
/**
* 需要基础库: '1.4.0'
* 子协议数组
*/
protocols?: string[]
/**
* 需要基础库: '2.4.0'
* 建立 TCP 连接的时候的 TCP_NODELAY 设置
*/
tcpNoDelay?: boolean
/**
* 需要基础库: '2.8.0'
* 是否开启压缩扩展
*/
perMessageDeflate?: boolean
/**
* 需要基础库: '2.10.0'
* 超时时间,单位为毫秒
*/
timeout?: number
/**
* 需要基础库: '2.29.0'
* 强制使用蜂窝网络发送请求
*/
forceCellularNetwork?: boolean
}
/**
* 需要基础库: `2.10.4`
* 网络请求过程中一些调试信息
*/
interface SocketProfile {
/** 组件准备好使用 SOCKET 建立请求的时间,这发生在检查本地缓存之前 */
fetchStart: number;
/** DNS 域名查询开始的时间,如果使用了本地缓存(即无 DNS 查询)或持久连接,则与 fetchStart 值相等 */
domainLookupStart: number;
/** DNS 域名查询完成的时间,如果使用了本地缓存(即无 DNS 查询)或持久连接,则与 fetchStart 值相等 */
domainLookupEnd: number;
/** 开始建立连接的时间,如果是持久连接,则与 fetchStart 值相等。注意如果在传输层发生了错误且重新建立连接,则这里显示的是新建立的连接开始的时间 */
connectStart: number;
/** 完成建立连接的时间(完成握手),如果是持久连接,则与 fetchStart 值相等。注意如果在传输层发生了错误且重新建立连接则这里显示的是新建立的连接完成的时间。注意这里握手结束包括安全连接建立完成、SOCKS 授权通过 */
connectEnd: number;
/** 单次连接的耗时,包括 connect tls */
rtt: number;
/** 握手耗时 */
handshakeCost: number;
/** 上层请求到返回的耗时 */
cost: number;
}
interface SocketSendOption extends ICommonCallBack {
/** 需要发送的消息 */
data: string | ArrayBuffer;
}
interface SocketCloseOption extends ICommonCallBack {
/**
* 1000表示正常关闭连接
* 关闭代码
*/
code?: number;
/**
* 关闭原因
* 这个字符串必须是不长于 123 字节的 UTF-8 文本
*/
reason?: string;
}
interface SocketTask {
/**
* 发送消息
* @param data 需要发送的消息
*/
send(res: SocketSendOption): void
/**
* 关闭 WebSocket 连接
* @param code 关闭代码
* @param reason 关闭原因
*/
close(res: SocketCloseOption): void
/**
* 监听 WebSocket 连接打开事件
* @param listener
*/
onOpen(listener: (res: { header: IAnyObject, profile: SocketProfile }) => void): void
/**
* 监听 WebSocket 接收到消息事件
* @param listener
* @param res.data 服务器返回的消息
*/
onMessage(listener: (res: { data: string | ArrayBuffer }) => void): void
/**
* 监听 WebSocket 错误事件
* @param listener
* @param res.errMsg 错误信息
*/
onError(listener: (res: { errMsg: string }) => void): void
/**
* 监听 WebSocket 关闭事件
* @param listener
* @param res.code 关闭代码
* @param res.reason 关闭原因
*/
onClose(listener: (res: { code: number, reason: string }) => void): void
}
interface Wx {
connectSocket(option: ConnectSocketOption): SocketTask
}
/** 启动参数 */
interface LaunchOptionsApp {
/** 需要基础库: `2.20.0`
*
* API 类别
*
* 可选值:
* - 'default': 默认类别;
* - 'nativeFunctionalized': 原生功能化,视频号直播商品、商品橱窗等场景打开的小程序;
* - 'browseOnly': 仅浏览,朋友圈快照页等场景打开的小程序;
* - 'embedded': 内嵌,通过打开半屏小程序能力打开的小程序; */
apiCategory:
| 'default'
| 'nativeFunctionalized'
| 'browseOnly'
| 'embedded'
/** 打开的文件信息数组只有从聊天素材场景打开scene为1173才会携带该参数 */
forwardMaterials: ForwardMaterials[]
/** 启动小程序的路径 (代码包路径) */
path: string
/** 启动小程序的 query 参数 */
query: Record<string, string>
/** 来源信息。从另一个小程序、公众号或 App 进入小程序时返回。否则返回 `{}`。(参见后文注意) */
referrerInfo: ReferrerInfo
/** 启动小程序的[场景值](https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/scene.html) */
scene: number
/** 从微信群聊/单聊打开小程序时chatType 表示具体微信群聊/单聊类型
*
* 可选值:
* - 1: 微信联系人单聊;
* - 2: 企业微信联系人单聊;
* - 3: 普通微信群聊;
* - 4: 企业微信互通群聊; */
chatType?: 1 | 2 | 3 | 4
/** shareTicket详见[获取更多转发信息](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html) */
shareTicket?: string
}
/** 当前小程序运行的宿主环境 */
interface AppBaseInfoHost {
/** 宿主 app第三方App 对应的 appId 当小程序运行在第三方App环境时才返回 */
appId: string
}
interface AppBaseInfo {
/** 客户端基础库版本 */
SDKVersion: string
/** 是否已打开调试。可通过右上角菜单或 [wx.setEnableDebug](https://developers.weixin.qq.com/miniprogram/dev/api/base/debug/wx.setEnableDebug.html) 打开调试。 */
enableDebug: boolean
/** 当前小程序运行的宿主环境 */
host: AppBaseInfoHost
/** 微信设置的语言 */
language: string
/** 微信版本号 */
version: string
/** 系统当前主题,取值为`light`或`dark`,全局配置`"darkmode":true`时才能获取,否则为 undefined (不支持小游戏)
*
* 可选值:
* - 'dark': 深色主题;
* - 'light': 浅色主题; */
theme?: 'dark' | 'light'
}
interface SafeArea {
/** 安全区域右下角纵坐标 */
bottom: number
/** 安全区域的高度,单位逻辑像素 */
height: number
/** 安全区域左上角横坐标 */
left: number
/** 安全区域右下角横坐标 */
right: number
/** 安全区域左上角纵坐标 */
top: number
/** 安全区域的宽度,单位逻辑像素 */
width: number
}
interface WindowInfo {
/** 设备像素比 */
pixelRatio: number
/** 在竖屏正方向下的安全区域。部分机型没有安全区域概念,也不会返回 safeArea 字段,开发者需自行兼容。 */
safeArea: SafeArea
/** 屏幕高度单位px */
screenHeight: number
/** 窗口上边缘的y值 */
screenTop: number
/** 屏幕宽度单位px */
screenWidth: number
/** 状态栏的高度单位px */
statusBarHeight: number
/** 可使用窗口高度单位px */
windowHeight: number
/** 可使用窗口宽度单位px */
windowWidth: number
}
interface SystemInfo {
/** 需要基础库: `1.1.0`
*
* 客户端基础库版本 */
SDKVersion: string
/** 需要基础库: `2.6.0`
*
* 允许微信使用相册的开关(仅 iOS 有效) */
albumAuthorized: boolean
/** 需要基础库: `1.8.0`
*
* 设备性能等级(仅 Android。取值为-2 或 0该设备无法运行小游戏-1性能未知>=1设备性能值该值越高设备性能越好<br> 注意:性能等级当前仅反馈真机机型,暂不支持 IDE 模拟器机型 */
benchmarkLevel: number
/** 需要基础库: `2.6.0`
*
* 蓝牙的系统开关 */
bluetoothEnabled: boolean
/** 需要基础库: `1.5.0`
*
* 设备品牌 */
brand: string
/** 需要基础库: `2.6.0`
*
* 允许微信使用摄像头的开关 */
cameraAuthorized: boolean
/** 设备方向
*
* 可选值:
* - 'portrait': 竖屏;
* - 'landscape': 横屏; */
deviceOrientation: 'portrait' | 'landscape'
/** 需要基础库: `2.15.0`
*
* 是否已打开调试。可通过右上角菜单或 [wx.setEnableDebug](https://developers.weixin.qq.com/miniprogram/dev/api/base/debug/wx.setEnableDebug.html) 打开调试。 */
enableDebug: boolean
/** 需要基础库: `1.5.0`
*
* 用户字体大小单位px。以微信客户端「我-设置-通用-字体大小」中的设置为准 */
fontSizeSetting: number
/** 需要基础库: `2.12.3`
*
* 当前小程序运行的宿主环境 */
host: SystemInfoHost
/** 微信设置的语言 */
language: string
/** 需要基础库: `2.6.0`
*
* 允许微信使用定位的开关 */
locationAuthorized: boolean
/** 需要基础库: `2.6.0`
*
* 地理位置的系统开关 */
locationEnabled: boolean
/** `true` 表示模糊定位,`false` 表示精确定位,仅 iOS 支持 */
locationReducedAccuracy: boolean
/** 需要基础库: `2.6.0`
*
* 允许微信使用麦克风的开关 */
microphoneAuthorized: boolean
/** 设备型号。新机型刚推出一段时间会显示unknown微信会尽快进行适配。 */
model: string
/** 需要基础库: `2.6.0`
*
* 允许微信通知带有提醒的开关(仅 iOS 有效) */
notificationAlertAuthorized: boolean
/** 需要基础库: `2.6.0`
*
* 允许微信通知的开关 */
notificationAuthorized: boolean
/** 需要基础库: `2.6.0`
*
* 允许微信通知带有标记的开关(仅 iOS 有效) */
notificationBadgeAuthorized: boolean
/** 需要基础库: `2.6.0`
*
* 允许微信通知带有声音的开关(仅 iOS 有效) */
notificationSoundAuthorized: boolean
/** 需要基础库: `2.19.3`
*
* 允许微信使用日历的开关 */
phoneCalendarAuthorized: boolean
/** 设备像素比 */
pixelRatio: number
/** 客户端平台
*
* 可选值:
* - 'ios': iOS微信包含 iPhone、iPad;
* - 'android': Android微信;
* - 'windows': Windows微信;
* - 'mac': macOS微信;
* - 'devtools': 微信开发者工具; */
platform: 'ios' | 'android' | 'windows' | 'mac' | 'devtools'
/** 需要基础库: `2.7.0`
*
* 在竖屏正方向下的安全区域。部分机型没有安全区域概念,也不会返回 safeArea 字段,开发者需自行兼容。 */
safeArea: SafeArea
/** 需要基础库: `1.1.0`
*
* 屏幕高度单位px */
screenHeight: number
/** 需要基础库: `1.1.0`
*
* 屏幕宽度单位px */
screenWidth: number
/** 需要基础库: `1.9.0`
*
* 状态栏的高度单位px */
statusBarHeight: number
/** 操作系统及版本 */
system: string
/** 微信版本号 */
version: string
/** 需要基础库: `2.6.0`
*
* Wi-Fi 的系统开关 */
wifiEnabled: boolean
/** 可使用窗口高度单位px */
windowHeight: number
/** 可使用窗口宽度单位px */
windowWidth: number
/** 需要基础库: `2.11.0`
*
* 系统当前主题,取值为`light`或`dark`,全局配置`"darkmode":true`时才能获取,否则为 undefined (不支持小游戏)
*
* 可选值:
* - 'dark': 深色主题;
* - 'light': 浅色主题; */
theme?: 'dark' | 'light'
}
interface DeviceInfo {
/** 应用微信APP二进制接口类型仅 Android 支持) */
abi: string
/** 设备性能等级(仅 Android 支持)。取值为:-2 或 0该设备无法运行小游戏-1性能未知>=1设备性能值该值越高设备性能越好目前最高不到50 */
benchmarkLevel: number
/** 设备品牌 */
brand: string
/** 需要基础库: `2.29.0`
*
* 设备 CPU 型号(仅 Android 支持Tips: GPU 型号可通过 WebGLRenderingContext.getExtension('WEBGL_debug_renderer_info') 来获取) */
cpuType: string
/** 需要基础库: `2.25.1`
*
* 设备二进制接口类型(仅 Android 支持) */
deviceAbi: string
/** 需要基础库: `2.30.0`
*
* 设备内存大小,单位为 MB */
memorySize: string
/** 设备型号。新机型刚推出一段时间会显示unknown微信会尽快进行适配。 */
model: string
/** 客户端平台 */
platform: string
/** 操作系统及版本 */
system: string
}
/** 小程序账号信息 */
interface MiniProgram {
/** 小程序 appId */
appId: string
/** 需要基础库: `2.10.0`
*
* 小程序版本
*
* 可选值:
* - 'develop': 开发版;
* - 'trial': 体验版;
* - 'release': 正式版; */
envVersion: 'develop' | 'trial' | 'release'
/** 需要基础库: `2.10.2`
*
* 线上小程序版本号 */
version: string
}
/** 插件账号信息(仅在插件中调用时包含这一项) */
interface Plugin {
/** 插件 appId */
appId: string
/** 插件版本号 */
version: string
}
/** 账号信息 */
interface AccountInfo {
/** 小程序账号信息 */
miniProgram: MiniProgram
/** 插件账号信息(仅在插件中调用时包含这一项) */
plugin: Plugin
}
interface MidasPaymentOption {
/** 支付的类型,不同的支付类型有各自额外要传的附加参数 */
mode: "game",
/** 是否为沙盒环境 0: 正式环境 1: 沙盒环境 */
env?: 0 | 1,
/** 商户号 在米大师侧申请的应用id */
offerId: string,
/** 货币类型 */
currencyType: "CNY",
/** 申请接入时的平台platform 与应用id有关 */
platform?: "android" | "windows",
/** 购买数量。mode=game 时必填。购买数量 */
buyQuantity: number,
/** 分区ID 默认1 */
zoneId?: string,
/**
* 业务订单号每个订单号只能使用一次重复使用会失败。开发者需要确保该订单号在对应游戏下的唯一性平台会尽可能校验该唯一性约束但极端情况下可能会跳过对该约束的校验。要求32个字符内只能是数字、大小写字母、符号_-|*组成,不能以下划线()开头。建议每次调用wx.requestMidasPayment都换新的outTradeNo。若没有传入则平台会自动填充一个并以下划线开头
*/
outTradeNo: string,
/** 接口调用成功的回调函数 */
success?: (res: { errMsg: string }) => void,
/** 接口调用失败的回调函数 */
fail?: (res: { errCode: number, errMsg: string, errno: number }) => void,
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?: () => void;
}
interface RewardedVideoAdOnCloseListenerResult {
/** 需要基础库: `2.1.0`
*
* 视频是否是在用户完整观看的情况下被关闭的 */
isEnded: boolean
}
interface RewardedVideoAdOnErrorListenerResult {
/** 需要基础库: `2.2.2`
*
* 错误码
*
* 可选值:
* - 1000: 后端接口调用失败;
* - 1001: 参数错误;
* - 1002: 广告单元无效;
* - 1003: 内部错误;
* - 1004: 无合适的广告;
* - 1005: 广告组件审核中;
* - 1006: 广告组件被驳回;
* - 1007: 广告组件被封禁;
* - 1008: 广告单元已关闭; */
errCode: 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008
/** 错误信息 */
errMsg: string
}
/** onClose 传入的监听函数。不传此参数则移除所有监听函数。 */
type RewardedVideoAdOffCloseCallback = (
result: RewardedVideoAdOnCloseListenerResult
) => void
/** onError 传入的监听函数。不传此参数则移除所有监听函数。 */
type RewardedVideoAdOffErrorCallback = (
result: RewardedVideoAdOnErrorListenerResult
) => void
/** 用户点击 `关闭广告` 按钮的事件的监听函数 */
type RewardedVideoAdOnCloseCallback = (
result: RewardedVideoAdOnCloseListenerResult
) => void
/** 激励视频错误事件的监听函数 */
type RewardedVideoAdOnErrorCallback = (
result: RewardedVideoAdOnErrorListenerResult
) => void
/** onLoad 传入的监听函数。不传此参数则移除所有监听函数。 */
type OffLoadCallback = (res: GeneralCallbackResult) => void
type OnLoadCallback = (res: GeneralCallbackResult) => void
interface RewardedVideoAd {
/**
* [Promise RewardedVideoAd.load()](https://developers.weixin.qq.com/miniprogram/dev/api/ad/RewardedVideoAd.load.html)
* 在插件中使用:不支持
* 加载激励视频广告。 */
load(): Promise<any>
/**
* [Promise RewardedVideoAd.show()](https://developers.weixin.qq.com/miniprogram/dev/api/ad/RewardedVideoAd.show.html)
* 在插件中使用:不支持
* 显示激励视频广告。激励视频广告将从屏幕下方推入。 */
show(): Promise<any>
/**
* [RewardedVideoAd.destroy()](https://developers.weixin.qq.com/miniprogram/dev/api/ad/RewardedVideoAd.destroy.html)
* 需要基础库: `2.8.0`
* 在插件中使用:不支持
* 销毁激励视频广告实例。 */
destroy(): void
/**
* [RewardedVideoAd.offClose(function listener)](https://developers.weixin.qq.com/miniprogram/dev/api/ad/RewardedVideoAd.offClose.html)
* 在插件中使用:不支持
* 移除用户点击 `关闭广告` 按钮的事件的监听函数
*
* **示例代码**
*
* ```js
* const listener = function (res) { console.log(res) }
*
* RewardedVideoAd.onClose(listener)
* RewardedVideoAd.offClose(listener) // 需传入与监听时同一个的函数对象
* ```
*/
offClose(
/** onClose 传入的监听函数。不传此参数则移除所有监听函数。 */
listener?: RewardedVideoAdOffCloseCallback
): void
/**
* [RewardedVideoAd.offError(function listener)](https://developers.weixin.qq.com/miniprogram/dev/api/ad/RewardedVideoAd.offError.html)
* 在插件中使用:不支持
* 移除激励视频错误事件的监听函数
*
* **示例代码**
*
* ```js
* const listener = function (res) { console.log(res) }
*
* RewardedVideoAd.onError(listener)
* RewardedVideoAd.offError(listener) // 需传入与监听时同一个的函数对象
* ```
*/
offError(
/** onError 传入的监听函数。不传此参数则移除所有监听函数。 */
listener?: RewardedVideoAdOffErrorCallback
): void
/**
* [RewardedVideoAd.offLoad(function listener)](https://developers.weixin.qq.com/miniprogram/dev/api/ad/RewardedVideoAd.offLoad.html)
* 在插件中使用:不支持
* 移除激励视频广告加载事件的监听函数
* **示例代码**
* ```js
* const listener = function (res) { console.log(res) }
*
* RewardedVideoAd.onLoad(listener)
* RewardedVideoAd.offLoad(listener) // 需传入与监听时同一个的函数对象
* ```
*/
offLoad(
/** onLoad 传入的监听函数。不传此参数则移除所有监听函数。 */
listener?: OffLoadCallback
): void
/**
* [RewardedVideoAd.onClose(function listener)](https://developers.weixin.qq.com/miniprogram/dev/api/ad/RewardedVideoAd.onClose.html)
* 在插件中使用:不支持
* 监听用户点击 `关闭广告` 按钮的事件。 */
onClose(
/** 用户点击 `关闭广告` 按钮的事件的监听函数 */
listener: RewardedVideoAdOnCloseCallback
): void
/**
* [RewardedVideoAd.onError(function listener)](https://developers.weixin.qq.com/miniprogram/dev/api/ad/RewardedVideoAd.onError.html)
* 在插件中使用:不支持
* 监听激励视频错误事件。
*
* **错误码信息与解决方案表**
*
* 错误码是通过onError获取到的错误信息。调试期间可以通过异常返回来捕获信息。
* 在小程序发布上线之后,如果遇到异常问题,可以在[“运维中心“](https://mp.weixin.qq.com/)里面搜寻错误日志,还可以针对异常返回加上适当的监控信息。
*
* | 代码 | 异常情况 | 理由 | 解决方案 |
* | ------ | -------------- | --------------- | -------------------------- |
* | 1000 | 后端错误调用失败 | 该项错误不是开发者的异常情况 | 一般情况下忽略一段时间即可恢复。 |
* | 1001 | 参数错误 | 使用方法错误 | 可以前往developers.weixin.qq.com确认具体教程小程序和小游戏分别有各自的教程可以在顶部选项中“设计”一栏的右侧进行切换。|
* | 1002 | 广告单元无效 | 可能是拼写错误、或者误用了其他APP的广告ID | 请重新前往mp.weixin.qq.com确认广告位ID。 |
* | 1003 | 内部错误 | 该项错误不是开发者的异常情况 | 一般情况下忽略一段时间即可恢复。|
* | 1004 | 无适合的广告 | 广告不是每一次都会出现,这次没有出现可能是由于该用户不适合浏览广告 | 属于正常情况,且开发者需要针对这种情况做形态上的兼容。 |
* | 1005 | 广告组件审核中 | 你的广告正在被审核,无法展现广告 | 请前往mp.weixin.qq.com确认审核状态且开发者需要针对这种情况做形态上的兼容。|
* | 1006 | 广告组件被驳回 | 你的广告审核失败,无法展现广告 | 请前往mp.weixin.qq.com确认审核状态且开发者需要针对这种情况做形态上的兼容。|
* | 1007 | 广告组件被封禁 | 你的广告能力已经被封禁,封禁期间无法展现广告 | 请前往mp.weixin.qq.com确认小程序广告封禁状态。 |
* | 1008 | 广告单元已关闭 | 该广告位的广告能力已经被关闭 | 请前往mp.weixin.qq.com重新打开对应广告位的展现。| */
onError(
/** 激励视频错误事件的监听函数 */
listener: RewardedVideoAdOnErrorCallback
): void
/**
* [RewardedVideoAd.onLoad(function listener)](https://developers.weixin.qq.com/miniprogram/dev/api/ad/RewardedVideoAd.onLoad.html)
* 在插件中使用:不支持
* 监听激励视频广告加载事件。 */
onLoad(
/** 激励视频广告加载事件的监听函数 */
listener: OnLoadCallback
): void
}
interface CreateRewardedVideoAdOption {
/** 广告单元 id */
adUnitId: string
/**
* 需要基础库: `2.8.0`
* 是否启用多例模式默认为false
*/
multiton?: boolean
}
interface Wx {
getLaunchOptionsSync(): LaunchOptionsApp;
getEnterOptionsSync(): LaunchOptionsApp;
getWindowInfo(): WindowInfo;
getAppBaseInfo(): AppBaseInfo;
getSystemInfoSync(): SystemInfo;
getDeviceInfo(): DeviceInfo;
getAccountInfoSync(): AccountInfo;
exitMiniProgram(): void;
setClipboardData(res: { data: string, fail: (res: GeneralCallbackResult) => void }): void;
requestMidasPayment(res: MidasPaymentOption): void;
/**
* [[RewardedVideoAd](https://developers.weixin.qq.com/miniprogram/dev/api/ad/RewardedVideoAd.html) wx.createRewardedVideoAd(Object object)](https://developers.weixin.qq.com/miniprogram/dev/api/ad/wx.createRewardedVideoAd.html)
* 需要基础库: `2.0.4`
* 在插件中使用:需要基础库 `2.8.1`
*
* 创建激励视频广告组件。请通过 [wx.getSystemInfoSync()](https://developers.weixin.qq.com/miniprogram/dev/api/base/system/wx.getSystemInfoSync.html) 返回对象的 SDKVersion 判断基础库版本号后再使用该 API小游戏端要求 >= 2.0.4 小程序端要求 >= 2.6.0)。调用该方法创建的激励视频广告是一个单例(小游戏端是全局单例,小程序端是页面内单例,在小程序端的单例对象不允许跨页面使用)。
*/
createRewardedVideoAd(option: CreateRewardedVideoAdOption): RewardedVideoAd
}
}
declare const wx: WechatMiniprogram.Wx