場(chǎng)景:
平時(shí)如果我們?cè)谀硞€(gè)頁面A傳一個(gè)帶有參數(shù)的網(wǎng)絡(luò)地址(http://www.ca.com?a=45&dd=23)給頁面B距淫;如果直接通過字段復(fù)制省艳,往往不能直接得到對(duì)應(yīng)http://www.ca.com?a=45&dd=23邮破,微信小程序會(huì)自動(dòng)把該參數(shù)拆分成多個(gè)參數(shù)低零;
如:
A界面?zhèn)鲄?/p>
let webUrl ='http://www.ca.com?a=45&dd=23'
wx.navigateTo({
url: '../../partials/chating/chating?webUrl=webUrl ,
})
最后B界面得到參數(shù)的卻是
#得到的是
{'webUrl':'http://www.ca.com','a':'45','dd':'23'}
#而不是
{'webUrl':'http://www.ca.com?a=45&dd=23'}
解決方案如下:
傳參
先把所有的參數(shù)放到一個(gè)對(duì)象里面副硅,然后把對(duì)象轉(zhuǎn)換成json字符串丙曙,再然后通過encodeURIComponent對(duì)json字符串進(jìn)行編碼爸业,最后再把編碼后的數(shù)據(jù)傳到下個(gè)頁面;
let jsonParam = {
accid: '1051004266212233216',
nick: '代詩',
url: "http://www.ca.com?a=45&dd=23"
}
wx.navigateTo({
url: '../../partials/chating/chating?chatTo=1051004266212233216'+'&jsonParam=' + encodeURIComponent(JSON.stringify(jsonParam)),
})
取參
先取到經(jīng)過編碼傳過來的數(shù)據(jù)亏镰,然后對(duì)該數(shù)據(jù)使用decodeURIComponent進(jìn)行解碼扯旷,得到解碼后的json字符串,最后對(duì)解析json字符串就好索抓;
/**
* 生命周期函數(shù)--監(jiān)聽頁面加載
*/
onLoad: function(options) {
let jsonParam = JSON.parse(decodeURIComponent(options.jsonParam));
console.log(jsonParam);
//{accid: "1051004266212233216", nick: "代詩", url: "http://www.ca.com?a=45&dd=23"}
}