八、uni-app页面调用接口

一、getApp():获取"总控制权"

作用

  • 获取全局数据(globalData):比如用户的登录信息、Token,存在总部,任何分店(页面)都能用 getApp() 拿到。
  • 调用全局方法:如果 App.vue 里写了个公共方法,页面也可以直接调用。
js 复制代码
const app = getApp()
console.log(app.globalData.userInfo) // 获取全局用户信息

2. 避坑指南

  • 别在 App.vue 的 onLaunch 里用它 :这时候总部还没建好,getApp() 会报错。在 App.vue 内部请用 this.$scope.globalData。
  • nvue 首页特例 :如果在 nvue 首页获取不到,可以用 getApp({allowDefault: true}) 获取原始对象。

二、getCurrentPages():获取"当前的叠叠乐积木"

作用

小程序的页面就像叠叠乐的积木,一层一层叠起来(这叫页面栈)。getCurrentPages() 就是用来查看当前叠了多少层积木的。

  • 返回一个数组,第一个是首页,最后一个是当前页面。
  • 跨页面传值(最常用):比如你在"编辑页"修改了头像,返回"个人中心页"时需要刷新数据,就可以通过它找到上一页并调用它的方法。
js 复制代码
const pages = getCurrentPages();
const currentPage = pages[pages.length - 1]; // 拿到当前页面
const prevPage = pages[pages.length - 2];    // 拿到上一页

console.log(currentPage.route); // 打印当前页面的路由路径

2. 避坑指南

  • 只能看,不能改:这个数组只能用来"展示"或"读取",千万不要去 push 或 pop 修改它,否则页面状态会乱套。
  • Vue3 调用上一页方法 :在 Vue3 中,如果上一页使用了 <script setup>,需要在上一页用 defineExpose({ updateData }) 暴露方法,当前页才能通过 prevPage.updateData() 调用。

三、$ getAppWebview():获取"页面的底层外壳"

作用

对页面进行更底层的原生控制,比如动态修改页面的下拉回弹效果(bounce)、获取页面 ID 等。

2. 避坑指南

  • 仅限 App 端 :这个方法是 App 平台专属的,微信小程序和 H5 是不支持的!使用时必须加上条件编译 // #ifdef APP-PLUS。
js 复制代码
// #ifdef APP-PLUS
const pages = getCurrentPages();
const currentPage = pages[pages.length - 1];
const currentWebview = currentPage.$getAppWebview();
console.log(currentWebview.id);
// #endif
  • 不要自己创建/销毁:uni-app 有自己的窗口管理机制,不要乱用原生 API 去销毁它,如果需要弹窗覆盖,请使用 subNvue。
相关推荐
wuxianda10301 天前
2026 苹果审核 4.3 (a) 被拒全解析|Guideline 4.3a spam 马甲包拒审原因 + 避坑方案
flutter·uni-app·苹果上架
头发还在的女程序员2 天前
基于 Spring Boot + Vue 3 + uni-app 的灵活用工系统:四端架构与业务流程设计
vue.js·spring boot·uni-app·灵活用工·灵工系统
Dumbness4 天前
订阅消息弹窗必须在用户点击里调:联调实验室里 timing 和 Mock 支付通知踩的坑
javascript·uni-app
码间留白5 天前
uni-app 鸿蒙离线打包:一个改动从源码到真机要穿过几条链
uni-app·鸿蒙·deveco·离线打包·uts插件
多客:duokelijie6 天前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
码间留白6 天前
鸿蒙端对接 BLE 血压计:从一次握手到读数入库(二)设备篇
物联网·uni-app·鸿蒙·蓝牙ble·血压计
华玥作者7 天前
Vue 3 + TypeScript + uni-app 组件库推荐:hy-app(华玥组件库)
vue.js·typescript·uni-app
FinelyYang7 天前
uniapp使用kkfileview在线预览ppt,excel,word,pdf类型文件
pdf·uni-app·powerpoint
2501_916008897 天前
iPhone 设备信息查看,用 KeyMob 看型号、序列号、电池健康和 UDID
android·ios·小程序·https·uni-app·iphone·webview
ModyQyW8 天前
vite-plugin-uni-manifest 0.7:在 uni-app 读取之前生成
前端·uni-app