【App.vue里跟踪页面跳转和用户ID】

在App.vue,里的onLaunch: async function() { }

加入如下代码:

javascript 复制代码
	  // 全局跳转日志(已修复 navigateBack 的 undefined 问题)
	  const ROUTE_METHODS = ['navigateTo', 'redirectTo', 'reLaunch', 'switchTab', 'navigateBack']
	  
	  ROUTE_METHODS.forEach(method => {
		uni.addInterceptor(method, {
		  invoke(args) {
			const pages = getCurrentPages()
			const curRoute = pages[pages.length - 1]?.route || '启动页'
			
			// ✅ 修复点 1:处理 navigateBack 的目标页
			let targetRoute = args.url
			if (method === 'navigateBack') {
			  // navigateBack 没有 args.url,需要手动算上一页
			  const prevPage = pages[pages.length - 2]
			  targetRoute = prevPage ? prevPage.route : '已退出应用'
			}
			
			// ✅ 修复点 2:更稳健的 UID 获取(避免 uni-id-pages-user-info 为空)
			let uid = '未登录'
			try {
			  // 优先从 uni-id-pages 的标准存储取
			  const storedUser = uni.getStorageSync('uni-id-pages-user-info')
			  if (storedUser && storedUser.uid) {
				uid = storedUser.uid
			  } else {
				// 兜底从 uniCloud 运行时取
				const cloudUser = uniCloud.getCurrentUserInfo()
				if (cloudUser && cloudUser.uid) {
				  uid = cloudUser.uid
				}
			  }
			} catch (e) {
			  // 存储读取失败,保持 '未登录'
			}

			console.log(`🔐 [${method}] 从=${curRoute} 到=${targetRoute},UID=${uid}`)
			return args
		  }
		})
	  })
相关推荐
weixin_422201305 小时前
如何解决小程序图标点击热区小,落点不准问题?
前端·小程序·样式·点击热区·扩大
daxiangxm5 小时前
GEO策略:让AI直接引用你的内容
开发语言·团队开发·运维开发·个人开发·数据库开发
泡海椒5 小时前
JQuick-Excel 实战:用 VALIDATION 建立可维护的 Excel 导入校验
开发语言·python·excel
longlongzihan5 小时前
前缀积与后缀积 —— LeetCode 238. 除了自身以外数组的乘积
开发语言·c++·leetcode
szial6 小时前
JavaScript 的 call、apply 和 bind:如何控制函数调用
开发语言·前端·javascript
weixin_307779136 小时前
C++代码实现MATLAB中的cvpartition函数功能
开发语言·c++·算法·matlab
黑妹天下第一乖6 小时前
小智改造实战解读-首 token 延迟去哪了:云端与端侧大模型的分段对照
开发语言·人工智能·python·嵌入式硬件·自然语言处理·iot
。小二6 小时前
Go 泛型并发利刃:async 库深度评测——370K ops/s、零依赖、生产就绪
开发语言·javascript·golang
CopyCode6 小时前
Agent 开发不是模型训练:一个前端的入门认知
前端·llm·agent
(Charon)6 小时前
【C++面试】线程同步机制:互斥锁、条件变量、原子操作与读写锁
开发语言·c++·算法·面试