微信小程序 web-view 的 url 带参问题

[复制链接]
查看: 3034|回复: 6
  • 萌哒
    2018-11-19 14:03
  • 发表于 2019-1-25 17:51:58 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    在微信小程序开发过程中,会需要跳转到外部链接,微信提供了 组件供我们使用。
    为减少重复代码,一般会将这个功能单独抽取为一个页面供大家使用:
    <span class="hljs-tag"style="color: rgb(0, 0, 255);"><span class="hljs-tag"style="color: rgb(0, 0, 255);"></span class="hljs-name"web-view/span></span class="hljs-name"template/span><span class="hljs-tag"style="color: rgb(0, 0, 255);"> export default { data() { return { url: '' } }, onLoad(options) { this.url = options.url } }</span class="hljs-name"script/span>** 如果上述的 url 携带了参数,那么参数需要经过encodeURIComponent,否则微信 ios 版可能出现页面无法打开的bug。**
    p.s.如果参数是一个对象,可以使用qs这个 npm 包将参数序列化一下。
    或者用这个(抄的):
    querystring.js
    const stringify = obj => { if (!obj) { return ''; } else { return Object.keys(obj) .sort() .map(key => { let val = obj[key]; if (val === undefined) { return ''; } if (val === null) { return encode(key); } // NOTE: 如果需要传递数组,请自己和服务端商量好该如何处理 // // if (Array.isArray(val)) { // return val.slice().reduce((r, v) => { // if (val2 === undefined) { // return r; // } // return r.concat(encode(key) + '[]=' + encode(v)); // }, []).join('&'); // } return encode(key) + '=' + encode(val); }) .filter(x => { return x.length > 0; }) .join('&'); }};// NOTE: 同样没处理数组// 问题不是需不需要数组,而是以什么样的形式来传递数组const parse = str => { str = str .trim() .replace(/^[?#&]/, '') .replace('/+/g', ' '); return str.split('&').reduce((r, s) => { let i = s.indexOf('='); let key = s.slice(0, i); let val = i === -1 ? undefined : s.slice(i + 1); r[key] = val === undefined ? null : decode(val); return r; }, {});};function encode(value) { return encodeURIComponent(value);}function decode(value) { return decodeURIComponent(value);}export default { stringify, parse};







    发表于 2019-1-25 17:52:13 | 显示全部楼层
    回的人少,我来小顶一下
    回复

    使用道具 举报

    发表于 2019-2-3 12:58:43 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复

    使用道具 举报

    发表于 2019-2-3 19:09:19 | 显示全部楼层
    额,看不懂在说神马~@_@
    回复

    使用道具 举报

    发表于 7 天前 | 显示全部楼层
    正需要,支持楼主大人了!
    回复

    使用道具 举报

    发表于 7 天前 | 显示全部楼层
    我只是路过打酱油的
    回复

    使用道具 举报

    发表于 7 天前 | 显示全部楼层
    么有分,谁能送我点积分啊::>_<::
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

     
     
    技术支持
    在线客服
    售后交流群瑞恩社区™售后</font><br><span>交流
    工作时间:
    8:00-18:00
    客服热线:
    15368564009
    微信扫一扫
    返回顶部 关注微信 下载APP 返回列表