小程序页面跳转传参包含链接地址方案

场景:

平时如果我们在某个页面A传一个带有参数的网络地址(http://www.ca.com?a=45&dd=23)给页面B;如果直接通过字段复制,往往不能直接得到对应http://www.ca.com?a=45&dd=23,微信小程序会自动把该参数拆分成多个参数;

如:

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"}
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 20180329 今天下午放学,在去往隋唐百戏城的路上,听到了一个好久都没听到过的消息——我们学校的超超和小婷结婚...
    在水一方198158阅读 1,562评论 0 0
  • 关于双11备货的再次提醒 对于sku量大的店铺,最容易出现的问题就是,爆款断货而非主推款剩下库存。 比如,店铺日常...
    容止可观阅读 3,025评论 0 0
  • 这年这月【原创】 2013-09-15 22:56 一样的秋季 秋阳似火没有了往日的温柔 凶神恶煞般 似乎疯狂的发...
    我是兰姐阅读 1,481评论 0 0
  • 好久没写觉察日记了,这段时间我感觉自己被宇宙的爱包围着,觉知大部分时间都很稳定!白骨精只要一有苗头,高我立刻能出来...
    纯净之旅_明琪阅读 3,987评论 2 4

友情链接更多精彩内容