1 情景再现:
喵哥最近开发小程序的时候,使用到了web-view承载网页的容器。其中src是webview 指向网页的链接。但是我的需求是src是动态的,并不是写死在代码里面的。所以,我打算在跳转路由navigator的url中携带网页链接。
2 问题出现
首先,在navigator的url中携带动态链接时,
<!--动态数据:let data = "https://mp.weixin.qq.com/s?a=123&b=456&c=789" -->
<navigator url="/pages/outlink/outlink?link={{data}}">走你</navigator>
然后,在outlink(装有web-view的页面)页面的onLoad中接收时候,得到的参数时:
onLoad: function (e) {
console.log(e) // 打印:{link: "https://mp.weixin.qq.com/s"}
},
参数不完整,
如果我不加前面的https://mp.weixin.qq.com/s
,直接传参数,是不是就可以了呢?其实不加,只传参数,则打印出来的是:
onLoad: function (e) {
console.log(e) // 打印:{link: "a", b: "456", c: "789"}
},
此时还要去一个一个的拼接,如果该网址参数很多,这就很麻烦。
3 解决办法
以下两个方法时Javascript的方法:
首先,通过encodeURIComponent()
对网址进行编码。
<!--
编码前动态数据:
let data = encodeURIComponent("https://mp.weixin.qq.com/s?a=123&b=456&c=789")
console.log(data)
//打印:https%3A%2F%2Fmp.weixin.qq.com%2Fs%3Fa%3D123%26b%3D456%26c%3D789
-->
<navigator url="/pages/outlink/outlink?url={{data}}">走你</navigator>
然后,在outlink(装有web-view的页面)页面的onLoad中接收时候,得到的参数时,再通过decodeURIComponent()
进行解密:就可以得到完整的url
onLoad: function (e) {
let url = decodeURIComponent(e.link)
console.log(url)
// 打印:https://mp.weixin.qq.com/s?a=123&b=456&c=789
},
OK!!!!!以上就是我的方法,如果还有什么更好的方法的话,欢迎留言?!Over~~~
?????记得单击加关注哦!!?????
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!