我是大钊
我是大钊
  • 发布:2021-12-28 12:31
  • 更新:2021-12-28 22:41
  • 阅读:446

【报Bug】uni.navigateTo的url地址在H5和APP端会自动反序列化,微信小程序中不会

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows10

HBuilderX类型: 正式

HBuilderX版本号: 3.2.16

浏览器平台: Chrome

浏览器版本: 96.0.4664.110(正式版本) (64 位)

项目创建方式: HBuilderX

示例代码:

let options = {
"id": "834",
"spaceId": "244",
"title": "ttt",
"pic": "/uploadimg/2021/06/07/20210607115700_3687.png",
"options": "%7B%22type%22:%220%22,%22pagetype%22:%220%22,%22pagename%22:%220%22,%22isLogin%22:%220%22,%22outlink%22:%22http://www.1000good.com%22,%22istitle%22:%220%22,%22title%22:%22%E5%8D%83%E5%A5%BD%E7%BD%91%22,%22finsh%22:%7B%22isshow%22:%220%22,%22text%22:%22%E9%80%80%E5%87%BA%22,%22tcolor%22:%22#ffffff%22,%22size%22:%2280%22,%22radius%22:%2220%22,%22bgcolor%22:%22#ff0000%22,%22x%22:%22left%22,%22Y%22:%22bottom%22,%22marginx%22:%2210%22,%22marginy%22:%2210%22%7D%7D",
"clicktype": "1",
"addtime": "18小时前",
"advName": "start_banner",
"Sort": "1",
"ncode": ""
}
let param = encodeURIComponent(JSON.stringify(options))
console.log('param', param)
uni.navigateTo({
url: /pages/news/blank/blank?isTitle=true&options=${param}
})

操作步骤:

复制示例代码,跳转到另一个页面,即可看到看到结果

预期结果:

uni.navigateTo参数原样传送

实际结果:

uni.navigateTo参数在H5和安卓app中都会自动反序列化

bug描述:

在调用uni.navigateTo之前,把url 序列化,
let param=encodeURIComponent (JSON.stringify(options))
console.log('param',param)
uni.navigateTo({
url:/pages/news/blank/blank?isTitle=true&options=${param}
})
收到参数后,反序列化:
onLoad(e) {
console.log('e.options',e.options)
console.log('this.clicktype',e.options.clicktype)
this.options=JSON.parse(decodeURIComponent(e.options)) ;
console.log('this.options',this.options)
this.clicktype=this.options.clicktype;
console.log('this.clicktype',this.clicktype)
this.fragment=e.options;
this.isTitle= e.istitle=='true'?true:false;

    },  

在h5中和app中,不经过反序列化,会自动的反序列化,如果属性里边包含有序列化的,也都会自动反序列化,会造成json转object错误。在微信小程序中是正常的。

2021-12-28 12:31 负责人:无 分享
已邀请:
小枫叶

小枫叶 - 外包接单加v:wlmk1234567 注明来意

尝试用全局变量承接一下试试

  • 我是大钊 (作者)

    解决方法是有很多种,但还是希望官方能够修复一下

    2021-12-29 09:41

该问题目前已经被锁定, 无法添加新回复