有的小程序需要跳转到别的小程序。 需要传递 跳转目的的appId,path,以及要传递的对象 (extraData),不过需要 再app.json 配置记录跳转得appId。
wx.navigateToMiniProgram({
appId: 'wx6f1363a076fccbaf',
path: `pages/query/policy/policy?idType=111&idCode=${orderParam.idNo}&name=${orderParam.name}`,
extraData: {
},
?? 有个坑,自己踩了,才知道。 这跳转小程序得 点击触发。 在下下图描述。 下图 是 在app.json ,一些参数配置。
自己被一个问题坑了 很久。 ┭┮﹏┭┮,拿来主义害死人。总结 还是自己粗心。 https://blog.csdn.net/tianlifeiyu/article/details/81704601 ,如下
A 小程序代码
<navigator target="miniProgram" open-type="navigate" app-id="{{BappId}}" path="{{path}}" extra-data="{{data}}" version="develop" bindtap='navgatorFn'>
js: 我这跳转的是指定的home页,如果path是空,那么跳转到B小程序的首页。
Page({
data: {
BappId:'B小程序的AppId',
path:'/pages/home/home' ,
data: {name:'阿森纳'}
},
其实也可以在path里面拼数据也能获取到只是 path拼的数据会存到Object下面的query里面,extra-data专门来传递数据的会存到Object下面的referrerInfo.extraData里;
B小程序代码:
因为开发文档中强调了数据是在App.onLaunch()和App.onShow()中接收;
所以去B小程序app.js中的onLaunch和onShow添加参数options用来接收A小程序传递的值。
App({
appData :'';
onLaunch: function (options){
this.appData = options
},
onShow:function (options) {
this.appData = options;
}
})
(这个appData必须定义,不然ios手机不行,安卓可以,自己被这问题坑了一下午。呜呜,要细心,还必须看文档,App 有那些元素。明鉴明鉴)
onLaunch和onShow 有其中一个就可以了,这样我们就拿到了A小程序传过来的值了;
接下来去home页从全局获取下刚才的appData。
var App = getApp();
Page({
data:{
appData: App.appData //把拿到的值存储起来
},
onLoad: function(options) {
var that = this;
console.log(that.data.appData) //打印一下看看你是否拿到了A小程序传过来的值
}
})
注:A、B小程序必须是在同一个公众号下有关联才能做跳转。在手机上进行跳转测试的时候要注意:
如果你在B小程序上增加代码,记得先扫一下B小程序的预览,然后关闭,再从A小程序的预览扫码进去,不然B小程序会一直保存你第一次的数据,不会做更改。
爱生活,爱编程。