【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
		  }
		})
	  })
相关推荐
懂点Tech3 小时前
ctfshow misc28:GIF 高度修改解题与脚本实现
开发语言·windows·python
云和数据.ChenGuang4 小时前
Python 重写(Override)深度解析:从 MRO 到 super() 的完整机制
java·开发语言·人工智能·python·langchain·1024程序员节
@大迁世界5 小时前
Firefox 本地模式:localhost 再见了 ?
前端·架构
美狐美颜SDK开放平台5 小时前
视频美颜SDK试用DEMO阶段应该测试什么?直播APP接入实操指南
开发语言·人工智能·深度学习·音视频·美颜sdk·直播美颜sdk·第三方美颜sdk
dtq04245 小时前
C++小案例 - 日志实战
开发语言·c++
星夜离尘565 小时前
MATLAB ADC 码流触顶诊断:命中数、缺口分段与削顶不可辨识性
开发语言·matlab
码匠许师傅5 小时前
【C++三方组件】Qt 概览:桌面 C++ 的事实标准与许可证三轨
开发语言·c++·qt
码匠许师傅6 小时前
【C++三方组件】POCO:跨平台系统编程全家桶
开发语言·c++
米米商聊7 小时前
同名附件为什么被 Map 覆盖?重复键与一对多索引
前端·javascript
bkspiderx7 小时前
基于Socket的广播通信及C语言实现详解
c语言·开发语言·socket·广播·socket的广播通信