MiniProgram API
MiniProgram 模块提供了控制小程序的方法。
方法
miniProgram.pageStack
获取小程序页面堆栈。
miniProgram.pageStack(): Promise<Page[]>
示例代码:
automator.launch().then(async miniProgram => { const pageStack = await miniProgram.pageStack() console.log(pageStack.length) // 当前页面栈数量})
miniProgram.navigateTo
保留当前页面,跳转到应用内的某个页面,同 wx.navigateTo
。
miniProgram.navigateTo(url: string): Promise<Page>
参数说明
字段 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
url | string | 是 | - | 需要跳转的应用内非 tabBar 的页面的路径 |
示例代码:
automator.launch().then(async miniProgram => { const page = await miniProgram.navigateTo('/page/component/index') console.log(page.path) // -> 'page/component/index'})
miniProgram.redirectTo
关闭当前页面,跳转到应用内的某个页面,同 wx.redirectTo
。
miniProgram.redirectTo(url: string): Promise<Page>
参数说明
字段 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
url | string | 是 | - | 需要跳转的应用内非 tabBar 的页面的路径 |
miniProgram.navigateBack
关闭当前页面,返回上一页面或多级页面,同 wx.navigateBack
。
miniProgram.navigateBack(): Promise<Page>
miniProgram.reLaunch
关闭所有页面,打开到应用内的某个页面,同 wx.reLaunch
。
miniProgram.reLaunch(url: string): Promise<Page>
参数说明
字段 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
url | string | 是 | - | 需要跳转的应用内页面路径 |
miniProgram.switchTab
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面,同 wx.switchTab
。
miniProgram.switchTab(url: string): Promise<Page>
参数说明
字段 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
url | string | 是 | - | 需要跳转的 tabBar 页面的路径 |
miniProgram.currentPage
获取当前页面。
miniProgram.currentPage(): Promise<Page>
miniProgram.systemInfo
获取系统信息,同 wx.getSystemInfo
。
miniProgram.systemInfo(): Promise<Object>
示例代码:
automator.launch().then(async miniProgram => { const systemInfo = await miniProgram.systemInfo() if (systemInfo.platform === 'devtools') { // Do something }})
miniProgram.callWxMethod
调用 wx 对象上的指定方法。
miniProgram.callWxMethod(method: string, ...args: any[]): Promise<any>
参数说明
字段 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
method | string | 是 | - | 需要调用的方法名 |
...args | array<any> | 否 | - | 方法参数 |
调用异步方法时无需传入 success 及 fail 回调函数。
示例代码:
automator.launch().then(async miniProgram => { await miniProgram.callWxMethod('setStorage', { key: 'test', data: 'test' }) const { data } = await miniProgram.callWxMethod('getStorageSync', 'test') console.log(data) // -> 'test'})
miniProgram.callPluginWxMethod
基础库 2.19.3 开始支持。
调用插件 wx 对象上的指定方法,用法同 miniProgram.callWxMethod。
miniProgram.callWxMethod(pluginId: string, method: string, ...args: any[]): Promise<any>
miniProgram.mockWxMethod
传入函数功能 automator 0.9.0,基础库 2.9.5 开始支持。
覆盖 wx 对象上指定方法的调用结果。
利用该接口,你可以很方便地直接指定 wx.chooseLocation
等调用系统组件的返回结果。
miniProgram.mockWxMethod(method: string, result: any): Promise<void>miniProgram.mockWxMethod(method: string, fn: Function | string, ...args: any[]): Promise<void>
参数说明
字段 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
method | string | 是 | - | 需要覆盖的方法名 |
result | any | 是 | - | 指定调用结果 |
字段 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
method | string | 是 | - | 需要覆盖的方法名 |
fn | Function string | 是 | - | 处理返回函数 |
...args | array<any> | 否 | - | 传入参数 |
fn 同 miniProgram.evaluate 的 appFunction 参数一样,无法使用闭包来引用外部变量。此外,你还可以在方法内使用 this.origin 来调用原始方法。
示例代码:
automator.launch().then(async miniProgram => { await miniProgram.mockWxMethod('showModal', { confirm: true, cancel: false }) await miniProgram.mockWxMethod( 'getStorageSync', function(key, defVal) { if (key === 'name') return 'redhoodsu' if (key === 'sex') return 'male' return defVal }, 'unknown', ) // 调用 wx.getStorageSync('name') 返回 'redhoodsu' // 更改 getSystemInfo 中的 platform 字段 await miniProgram.mockWxMethod( 'getSystemInfo', function(obj, platform) { return new Promise(resolve => { // origin 指向原始方法 this.origin({ success(res) { res.platform = platform resolve(res) }, }) }) }, 'test', )})
miniProgram.mockPluginWxMethod
基础库 2.19.3 开始支持。
覆盖插件 wx 对象上指定方法的调用结果,用法同 miniProgram.mockWxMethod。
miniProgram.mockWxMethod(pluginId: string, method: string, result: any): Promise<void>miniProgram.mockWxMethod(pluginId: string, method: string, fn: Function | string, ...args: any[]): Promise<void>
miniProgram.restoreWxMethod
重置 wx 指定方法,消除 mockWxMethod 调用的影响。
miniProgram.restoreWxMethod(method: string): Promise<void>
参数说明
字段 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
method | string | 是 | - | 需要覆盖的方法名 |
示例代码:
automator.launch().then(async miniProgram => { console.log(await miniProgram.callWxMethod('getStorageSync', 'test')) // -> '' await miniProgram.mockWxMethod('getStorageSync', 'mockValue') console.log(await miniProgram.callWxMethod('getStorageSync', 'test')) // -> 'mockValue' await miniProgram.restoreWxMethod('getStorageSync') console.log(await miniProgram.callWxMethod('getStorageSync', 'test')) // -> ''})
miniProgram.restorePluginWxMethod
基础库 2.19.3 开始支持。
重置插件 wx 指定方法,消除 mockPluginWxMethod 调用的影响,用法同 miniProgram.restoreWxMethod。
miniProgram.restoreWxMethod(pluginId: string, method: string): Promise<void>
miniProgram.evaluate
往 AppService 注入代码片段并返回执行结果。
miniProgram.evaluate(appFunction: Function | string, ...args: any[]): Promise<any>
参数说明
字段 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
appFunction | Function string | 是 | - | 代码片段 |
...args | array<any> | 否 | - | 执行时传入参数 |
appFunction 最终会被序列化传递到开发者工具,因此你无法在函数中利用闭包来引用外部变量。也就是说,传递
function () {}
函数事实上等同于传递其字符串。
示例代码:
automator.launch().then(async miniProgram => { let systemInfo = await miniProgram.evaluate(() => { return new Promise(resolve => { wx.getSystemInfo({ success(result) { resolve(result) } }) }) }) systemInfo = await miniProgram.evaluate(() => { return wx.getSystemInfoSync() }) console.log(systemInfo) await miniProgram.evaluate(key => { wx.setStorageSync(key, 'test') }, 'test') const hasLogin = await miniProgram.evaluate(() => getApp().globalData.hasLogin) console.log(hasLogin)})
miniProgram.pageScrollTo
将页面滚动到目标位置,同 wx.pageScrollTo
。
miniProgram.pageScrollTo(scrollTop: number): Promise<void>
参数说明
字段 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
scrollTop | number | 是 | - | 滚动到页面的目标位置,单位 px |
示例代码:
automator.launch().then(async miniProgram => { await miniProgram.pageScrollTo(50)})
更多详细信息可访问小程序开发文档:
https://developers.weixin.qq.com/miniprogram/dev/devtools/auto/miniprogram.html
原文链接: https://www.yukx.com/miniprogram/article/details/2505.html 优科学习网MiniProgram API
-
ReactNative开发工具涵盖了从代码编辑器、集成开发环境(IDE)、调试工具到特定功能库和辅助服务的广泛范围。以下是部分关键工具,旨在提升ReactNative开发效率、调试体验和应用性能:代码编辑器与IDEVisualStudioCode (VSCode):流行的开源代码编辑器,具有强大的插
-
ReactNative是一个开源的跨平台移动应用开发框架,由Facebook在2015年4月首次推出。其核心理念是使用一套统一的JavaScript代码库,结合React(一个用于构建用户界面的声明式、高效且灵活的JavaScript库)的编程模型,来构建原生移动应用程序,同时支持iOS和Andro
-
微信小程序的开发工具主要包括以下几类:微信开发者工具:官方工具:这是微信官方提供的核心开发工具,是开发微信小程序的首选和必备工具。它集成了代码编辑、调试、预览、发布等功能,支持实时预览效果、模拟器测试、性能分析、远程调试等,帮助开发者高效地完成小程序的编写、测试与发布流程。官方开发者工具通常会保持与
-
小程序简介微信小程序(英文名:WeChatMiniProgram)是由腾讯公司推出的基于微信平台的应用形态。它是一种无需用户下载安装即可使用的轻型应用程序,用户可以通过扫描二维码、搜索关键词或者在微信内通过特定入口(如发现页的小程序列表、公众号关联小程序等)直接访问。小程序以其“触手可及,用完即走”
-
Android碎片(Fragment)是Android应用程序架构中的一个重要组件,旨在支持构建适应不同屏幕尺寸和形态的应用界面。以下是关于Fragment的详细说明:概念与作用定义与性质:Fragment 是一个可以嵌入在 Activity 内部的、具有独立用户界面和生命周期的模块化组件,继承自
-
Android服务(Service)Android服务(Service)是Android应用程序架构中的四大组件之一,它专为在后台执行长时运行任务而设计,无需与用户直接交互或显示界面。以下是关于Android服务的详细说明:概念与作用定义与性质:Service 是一个应用程序组件,继承自 andro