App — 应用生命周期
App 级生命周期基于浏览器 Visibility API,无需 bridge 调用,不受网络影响。
与页面生命周期的区别:App 事件在整个应用层面触发,不区分页面。
API 参考
woo.getLaunchOptionsSync()
同步获取应用启动参数(首次调用时解析 URL hash,之后缓存)。ts
const { path, query, scene } = woo.getLaunchOptionsSync()
console.log(path) // 'pages/home/index'
console.log(query) // { from: 'share' }
console.log(scene) // 1001(默认场景值)| 字段 | 类型 | 说明 |
|---|---|---|
path | string | 启动页面路径 |
query | Record<string, string> | 启动参数 |
scene | number | 启动场景值 |
woo.onAppShow(callback)
应用从后台切回前台时触发(切换 App、解锁屏幕等)。
ts
const offShow = woo.onAppShow((opts) => {
console.log('App 进入前台', opts)
syncData()
})
// 取消订阅
offShow()woo.onAppHide(callback)
应用进入后台时触发(按 Home 键、切换 App 等)。
ts
const offHide = woo.onAppHide(() => {
console.log('App 进入后台')
saveState()
})完整使用示例
ts
// main.ts 或 App.vue
import { onMounted, onUnmounted } from 'vue'
import woo from 'mini-sdk'
// 获取启动参数(同步,无需 await)
const launchOptions = woo.getLaunchOptionsSync()
const initialPath = launchOptions.path
// 订阅 App 级生命周期
const offAppShow = woo.onAppShow(() => {
// 从后台恢复:刷新登录状态、同步消息等
refreshAuthToken()
syncUnreadMessages()
})
const offAppHide = woo.onAppHide(() => {
// 进入后台:暂停实时连接、保存草稿等
pauseWebSocket()
saveDraft()
})
onUnmounted(() => {
offAppShow()
offAppHide()
})