uni-app怎么获取微信小程序的运行场景值 uni-app判断用户进入来源【实战】

张开发
2026/4/17 12:53:36 15 分钟阅读

分享文章

uni-app怎么获取微信小程序的运行场景值 uni-app判断用户进入来源【实战】
uni.getLaunchOptionsSync()仅冷启动有效热启动返回空对象scene值需结合onShow的options.query和referrerInfo判断且须平台隔离。uni.getLaunchOptionsSync() 返回空对象微信小程序里 uni.getLaunchOptionsSync() 在某些场景下确实会返回空对象不是 bug是机制问题。它只在「冷启动」时有效——也就是用户从桌面图标、聊天记录、公众号菜单等外部入口首次打开小程序时才携带完整参数如果小程序已经在后台运行用户通过下拉最近使用列表唤起就属于热启动此时这个 API 返回的就是空对象。实操建议不要单独依赖 uni.getLaunchOptionsSync() 做来源判断尤其不能用它判断分享卡片来源冷启动时优先取它的 scene 字段热启动时得靠 onShow 生命周期里的 options 参数补全App.vue 的 onLaunch 钩子里调用它最稳妥onShow 里再做二次校验scene 值怎么查常见值有哪些微信官方文档列了 70 个 scene 值但实际项目中高频遇到的就十几个。关键是别硬背要结合调试日志看真实值。比如用户从微信群点击链接进入你拿到的 scene 很可能是 1047群聊而不是文档里写的“可能为 1044 或 1047”这种模糊描述。实操建议在 onLaunch 和 onShow 里都打印 console.log(options)真机调试时多试几种入口扫码、搜索、群聊、公众号菜单重点记这几个1001扫码、1007公众号菜单、1008朋友圈广告、1037微信首页下拉、1047群聊注意scene 是数字类型不是字符串比较时别写成 options.scene 1047分享卡片里带参数但 onShareAppMessage 没触发这是最容易踩的坑你以为用户点分享按钮就会触发 onShareAppMessage然后你往 path 里拼参数——但其实如果用户没主动分享而是直接从聊天记录点进来的这个函数根本不会执行。路径里的参数是上一次分享时写死的和当前进入场景无关。 arXiv Xplorer ArXiv 语义搜索引擎帮您快速轻松的查找保存和下载arXiv文章。

更多文章