2***@qq.com
2***@qq.com
  • 发布:2020-05-05 21:54
  • 更新:2023-01-28 18:10
  • 阅读:3303

【报Bug】uniapp h5 路由模式为hash时,onLoad获取不到uri参数

分类:uni-app

详细问题描述

版本:2.6.11.20200409,uniapp h5 路由模式为hash时,参数加到#号前,onLoad获取不到uri参数

[内容]

重现步骤

[步骤]

  1. 随便建一个页面,onload打印参数
  2. 带上参数请求,参数在#号前面,例如:http://192.168.0.107:8080/h5test/?code=021q6eHL04Lbv82xiQHL0CSjHL0q6eHD&state=1588685441#/pages/my/my

[结果]
参数为空obj

[期望]
应该可以获取uri参数才对。

2020-05-05 21:54 负责人:无 分享
已邀请:
hhyang

hhyang - 如有问题,请添加QQ1606726660 备注付费咨询

这样才对

http://192.168.0.107:8080/h5test/#/pages/my/my?code=021q6eHL04Lbv82xiQHL0CSjHL0q6eHD&state=1588685441

a***@qq.com

a***@qq.com

onload的option获取不到#之前的参数,只能获取#之后的参数

a***@qq.com

a***@qq.com

可以通过let v = location.search.match(new RegExp("[\?\&]code=([^\&]+)", "i")); if(v)code=v[1] 这种来获取参数

m***@qq.com

m***@qq.com

// onLoad(params)不支持从以下链接中截取参数  
// 如:http://localhost:8010/?phone=13812345678&pswd=123456/#/pages/index/index  
// 暂代提取参数方案:   
const url = location.href;  
let phone = url.match(/(\?|&)phone=([^&]\w+)/)[2];  
let pswd = url.match(/(\?|&)pswd=([^&]\w+)/)[2];  
console.log(phone);  
console.log(pswd);  

// 楼上的location.search.match(new RegExp("[\?\&]phone=([^\&]+)", "i")[1]这种模式貌似不兼容以下形式:   
// http://localhost:8010/#/pages/index/index?phone=13812345678&pswd=123456

要回复问题请先登录注册