// 页面A
// 构造要传递的复杂参数
var complexParam = {
name: "John",
age: 25,
hobbies: ["reading", "coding", "traveling"],
location: {
city: "Beijing",
country: "China"
}
};
// 将复杂参数转为JSON字符串
var paramStr = JSON.stringify(complexParam);
// 跳转到页面B,并传递参数
wx.navigateTo({
url: '/pages/b/b?param=' + encodeURIComponent(paramStr)
});
// 页面B
// 在页面B的onLoad函数中获取传递的参数
onLoad: function(options) {
// 获取参数字符串
var paramStr = options.param;
// 将参数字符串解析为JSON对象
var complexParam = JSON.parse(decodeURIComponent(paramStr));
console.log(complexParam);
}
在页面A中,我们构造了一个复杂的参数complexParam
,然后使用JSON.stringify
方法将其转为JSON字符串。在跳转时,我们通过url
参数将JSON字符串传递给页面B,同时使用encodeURIComponent
对参数进行编码,以确保参数中的特殊字符不会被URL编码破坏。
在页面B中,我们通过options
参数获取到传递的参数字符串paramStr
,然后使用JSON.parse
方法将其解析为JSON对象。最后,我们可以在控制台中打印出复杂参数的内容。
请注意,微信小程序对url
参数的长度有限制,如果参数过长可能会被截断。如果你的参数非常复杂或者超过限制长度,可以考虑使用全局数据进行共享,或者使用缓存等其他方式来传递和获取复杂参数。