uni.navigateToMiniProgram 调用失败主因是权限与配置缺失,需同时满足:目标小程序在 app.json 中配置 navigateToMiniProgramAppIdList 白名单、当前小程序开通跳转权限、仅真机支持;参数中 appId 和 envVersion 必须严格校验,extraData 需为 plain object,path 须以 / 开头且页面已注册。
uni.navigateToMiniProgram 调用失败的典型表现
点击后无反应、控制台报
或
,甚至直接静默失败——这基本不是代码写错了,而是权限或配置没到位。
微信
对跨小程序跳转有强管控,
必须同时满足三个硬条件:目标小程序已配置白名单、当前小程序已开通跳转权限、调用环境是真机(开发者工具不支持)。
必须在目标小程序 app.json 中声明 navigateToMiniProgramAppIdList
这是最容易被忽略的一步。哪怕你
uni-app
侧代码完全正确,只要被跳转的小程序(B 小程序)没在自己的
里把你的小程序 AppID 加进白名单,微信就会直接拦截请求。
打开 B 小程序项目根目录下的
添加字段:
(注意是字符串数组,不是单个字符串)
务必重新上传并发布 B 小程序新版本,仅本地修改无效
如果要支持多个来源小程序,就填多个 AppID,例如
uni.navigateToMiniProgram 的参数陷阱
和
是唯二强制校验项,其余都可为空但格式不能错。常见翻车点:
字符串里不能有空格、换行或中文引号,复制时尤其注意全角/半角
必须小写,且只接受
/
/
——写成
或
都会失败
是 plain object,不能是字符串或 null;传空对象
安全,但别传
或
必须以
开头,且目标页面需在 B 小程序的
中注册过
示例正确调用:
微信公众平台开发入门教程 中文WORD版
由于微信的大热,为了更好的方便使用微信的用户查询一些信息,这篇文章是入门级的微信公众平台开发教程,需要的朋友可以参考下 这篇入门教程将引导你完成如下任务: 创建百度云平台应用启用微信公众平台开发模式获取订阅、文字、图片、语音、视频消息回复文本、图文及音乐消息程序开发
下载
真机调试前必须确认的三件事
模拟器和 HBuilderX 的“运行到小程序”功能无法触发真实跳转,所有测试必须在真机上进行,且需确保:
微信客户端已更新到最新版(旧版可能不识别
)
当前登录的微信账号,已在 B 小程序后台的「成员管理」中被设为体验者(仅当
时需要)
uni-app 项目 manifest.json 中的「
微信小程序
AppID」已填写正确,否则
在小程序端根本不会注册
跳转后若 B 小程序启动但收不到
,大概率是它没在
或
的
参数里取值——这个数据不会自动挂到全局,必须手动解构。
err: invalid appidfail no permissionuni.navigateToMiniProgramapp.jsonapp.json"navigateToMiniProgramAppIdList": ["你的小程序AppID"]["wx123...", "wx456..."]appIdenvVersionappIdenvVersion"develop""trial""release""Develop""production"extraData{}undefined"{}"path/pages.jsonuni.navigateToMiniProgram({
appId: 'wx1234567890abcdef',
path: '/pages/detail/detail?id=123',
extraData: { from: 'uniapp', scene: 1001 },
envVersion: 'release',
success: (res) => console.log('跳转成功'),
fail: (err) => console.error('跳转失败', err)
})envVersion: "trial"envVersion: "trial"uni.navigateToMiniProgramextraDataApp.onLaunchApp.onShowoptions