1. 程式人生 > >小程式頁面跳轉傳參包含連結地址方案

小程式頁面跳轉傳參包含連結地址方案

場景:

如:

A介面傳參

let webUrl ='http://www.ca.com?a=45&dd=23' 
wx.navigateTo({
  url: '../../partials/chating/chating?webUrl=webUrl ,
})

最後B介面得到引數的卻是

 #得到的是
{'webUrl':'http://www.ca.com','a':'45','dd':'23'}
#而不是
{'webUrl':'http://www.ca.com?a=45&dd=23'}

解決方案如下:

傳參

先把所有的引數放到一個物件裡面,然後把物件轉換成json字串,再然後通過encodeURIComponent對json字串進行編碼,最後再把編碼後的資料傳到下個頁面;

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)),
})

取參

先取到經過編碼傳過來的資料,然後對該資料使用decodeURIComponent進行解碼,得到解碼後的json字串,最後對解析json字串就好;

/**
* 生命週期函式--監聽頁面載入
*/
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"}
}