const api = require('./utils/api') const storage = require('./utils/storage') const sync = require('./utils/sync') App({ onLaunch() { const logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', logs) this.initData() this.getUserOpenId() }, initData() { const persons = wx.getStorageSync('persons') || [] const anniversaries = wx.getStorageSync('anniversaries') || [] if (persons.length === 0 && anniversaries.length === 0) { console.log('初始化数据结构') } }, // 获取 openid:调自建后端 /api/login async getUserOpenId() { let openid = wx.getStorageSync('openid') if (!openid) { try { const res = await api.login() openid = res.openid wx.setStorageSync('openid', openid) console.log('获取openid成功:', openid) } catch (err) { console.error('获取openid失败:', err) return } } this.globalData.openid = openid // 拿到 openid 后,本地无数据时从云端拉一次(新设备/重装恢复场景) const pulled = await storage.pullFromCloudIfEmpty() if (pulled) console.log('已从云端恢复数据') // flush 之前同步失败的待重试队列 sync.flush() }, globalData: { userInfo: null, openid: '' } })