用户点订阅消息进来是白屏,日志里没有报错,开发者工具里复现时提示 url not in app.json,路径写的是 /pages/chat/index。日志里能对上时间点,这种反而好排。
订阅消息模板里的 pagePath 要求相对路径,前面带斜杠会被当成绝对路径去匹配,匹配不到就落到首页再白屏。tabBar 页面还有额外限制,只能用 switchTab 跳。这一点先确认清楚,后面就不用反复试。
const pagePath = 'pages/chat/index?ticket=' + encodeURIComponent(id);
wx.requestSubscribeMessage({ tmplIds: ['TPL_ID'] });
console.log(pagePath);
围绕「订阅消息 pagePath」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
处理上按这个顺序:把 pagePath 的前导斜杠去掉,改成 pages/chat/index 这种写法;确认目标页是不是 tabBar 页面,是的话跳转方式要换;参数用 query 字符串带,别塞进路径里,长度也别超过限制。
结果对不对很好判断,从订阅消息点进来直接落在客服页,参数也带过去了。
