微信小程序打开另外一个小程序,有两种方法:1.超连接;2.点击按钮。html
全局配置:json
跳转到其余小程序,须要在当前小程序全局配置中配置须要跳转的小程序列表,代码以下:小程序
App.json微信小程序
{ ... "navigateToMiniProgramAppIdList": [ "wxe5f52902cf4de896" ] }
不然会弹出如下错误提示:微信
超连接实现跳转到小程序:app
demo.wxml函数
<navigator target="miniProgram" open-type="navigate" app-id="wxdbcxxxxxxxx985f" path="pages/index/index?goods_id=201" extra-data="{{extraData}}" version="develop" bindsuccess="toMiniProgramSuccess">点击超连接打开绑定的小程序</navigator>
demo.js工具
data:{ extraData: { from: '优享新可能nav' } } ... toMiniProgramSuccess(res){ //从其余小程序返回的时候触发 wx.showToast({ title: '经过超连接跳转其余小程序成功返回了' }) }
相关参数:spa
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
target | String | self | 设置为miniProgram,则跳转都其余小程序 |
app-id | String | 要打开的小程序 appId | |
path | String | 打开的页面路径,若是为空则打开首页,可带参数 | |
extra-data | Object | 须要传递给目标小程序的数据,目标小程序可在 App.onLaunch() ,App.onShow() 中获取到这份数据。详情 |
|
version | version | release | 要打开的小程序版本,有效值 develop(开发版),trial(体验版),release(正式版),仅在当前小程序为开发版或体验版时此参数有效;若是当前小程序是正式版,则打开的小程序一定是正式版。 |
bindsuccess | String | 跳转小程序成功 | |
bindfail | String | 跳转小程序失败 | |
bindcomplete | String | 跳转小程序完成 |
备注:调试
1. extra-data必须为Object类型,能够在data中定义,而后模板中引用;
2. version能够为空,以小程序当前环境为准。若是设置有值,则只在当前小程序为非正式版时有效。若是设置为develop,那么最好先用微信预览最新编译过的须要跳转到的小程序,而后再扫码预览原来的小程序。否则的话跳转到的小程序可能不是最新版;
3. bindsuccess回调事件在跳转到小程序返回以后触发,wx.navigateToMiniProgram Api则是在跳转同时触发。
经过按钮单击事件实现:
demo.wxml
<button bindtap='navigateToMiniProgram'> 点击按钮打开其余小程序 </button>
demo.js
navigateToMiniProgram(){ wx.navigateToMiniProgram({ appId: 'wxdbcxxxxx985f', path: 'pages/index/index?goods_id=201', extraData: { from: 'xxxxx' }, envVersion: 'develop', success(res) { // 打开其余小程序成功同步触发 wx.showToast({ title: '跳转成功' }) } }) }
相关参数:
属性 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
appId | string | 是 | 要打开的小程序 appId | |
path | string | 否 | 打开的页面路径,若是为空则打开首页 | |
extraData | object | 否 | 须要传递给目标小程序的数据,目标小程序可在 App.onLaunch ,App.onShow 中获取到这份数据。 |
|
envVersion | string | release | 否 | 要打开的小程序版本。仅在当前小程序为开发版或体验版时此参数有效。若是当前小程序是正式版,则打开的小程序一定是正式版。 |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
目标小程序接收来源小程序传递过来的参数:
目标小程序app.js
App({ onLaunch: function (options) { console.log("referrerInfo:::", options.referrerInfo) } ... })
输出:
{"appId":"wxcc41e47562b08129","extraData":{"from":"xxxxx"}}
开发者工具调试被打开的小程序时候正确的接收参数:
开发者工具新建编译模式:
输出以下:
注意:
1. 先选择进入场景,输入1037就能快速定位到从小程序进入这个选项,而后就会显示设置appid及extraData的输入框;
2. 尤为要注意extraData的格式,与来源小程序中传递过来的格式都有点不同,请严格参照下边的代码:
{"from":"xxxxx"}
注意事项:
1. navigateToMiniProgram Api须要用户主动触发跳转,且在跳转至其余小程序前,将统一增长弹窗,询问是否跳转,用户确认后才能够跳转其余小程序。若是用户点击取消,则回调 fail cancel;
2. 每一个小程序可跳转的其余小程序数量限制为不超过 10 个;
3. 在开发者工具上调用此 API 并不会真实的跳转到另外的小程序,可是开发者工具会校验本次调用跳转是否成功。
4. 开发者工具上支持被跳转的小程序处理接收参数的调试。