小程序跳转小程序之间传值和接收参数
程序员文章站
2024-03-15 12:19:35
...
A小程序跳转到B小程序,并且把参数带到B小程序。
A小程序代码:
wxml
<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;
}
})
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小程序会一直保存你第一次的数据,不会做更改。
第一次写文章如有不对的地方希望大家多多指正!<-卖萌脸->
推荐阅读