关于微信小程序:微信小程序wxnavigateTo跳转参数大小超出限制问题

5次阅读

共计 940 个字符,预计需要花费 3 分钟才能阅读完成。

微信小程序的跳转形式

  • 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))}`
})

接管页

 onLoad(options) {let { Info} = options
   Info = JSON.parse(decodeURIComponent(Info))
}
正文完
 0