微信小程序wx.navigateTo跳转参数大小超出限制问题

这篇具有很好参考价值的文章主要介绍了微信小程序wx.navigateTo跳转参数大小超出限制问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微信小程序的跳转方式

  • wx.navigateTo(Object):保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 可以返回到原页(新页面入栈)
  • wx.redirectTo(Object):关闭当前页面,跳转到应用内的某个页面(当前页面出栈,新页面入栈)
  • wx.switchTab(Object):跳转到 tabBar 页面,同时关闭其他非 tabBar 页面(非Tab页面全部出栈,只留下新的 Tab 页面)
  • wx.navigateBack(Object):返回上一页面(页面不断出栈)
  • wx.reLaunch(Object):关闭所有页面,打开到应用内的某个页面(页面全部出栈,只留下新的页面)

跳转携带参数的方法:在跳转的链接后接?参数名=参数

wx.redirectTo({
   url: `../heartOrder/index?Info=${JSON.stringify(obj)}`
})

跳转携带的参数必须转换为字符串,否则报错。


小程序跳转带参的字符长度是受限制的,如果字符过长,会被截取掉,解决办法如下:
使用encodeURIComponentdecodeURIComponent对字符进行编码和解码
encodeURIComponent(url):
可把字符串作为 URI 组件进行编码,返回URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( ) 。其他字符(比如 :;/?: @&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

decodeURIComponent(url) :
可把字符串作为 URI 组件进行解码。返回URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

跳转页

wx.redirectTo({
   url: `../heartOrder/index?Info=${encodeURIComponent(JSON.stringify(obj))}`
})

接收页文章来源地址https://www.toymoban.com/news/detail-483708.html

 onLoad(options) {
   let { Info} = options
   Info = JSON.parse(decodeURIComponent(Info))
}

onShow上获取参数

// 1 获取当前的小程序的页面栈-数组 长度最大是10页面 
let pages = getCurrentPages();
// 2 数组中 索引最大的页面就是当前页面
let currentPage = pages[pages.length - 1];
// 3 获取url上的type参数
const { type } = currentPage.options;

到了这里,关于微信小程序wx.navigateTo跳转参数大小超出限制问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包