您当前的位置: 首页 > 解决方案

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

  • 作者: admin
  • 发布于 2019-01-26 10:06:29
  • 来源:  
  • 栏目:解决方案

导语: 在微信小程序开发过程中,会需要跳转到外部链接,微信提供了 <web-v

 

在微信小程序开发过程中,会需要跳转到外部链接,微信提供了 <web-view>组件供我们使用。

为减少重复代码,一般会将这个功能单独抽取为一个页面供大家使用:

<template> <!--   通用 web-view   note:在iOS中,若存在JSSDK接口调用无响应的情况,可在<web-view/>的src后面加个#wechat_redirect解决  --> <web-view :src="url"></web-view> </template>  <script>   export default {     data() {       return {         url: ''       }     },     onLoad(options) {       this.url = options.url     }   } </script>

** 如果上述的 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 };
 

 

 



温馨提示:这篇文章没有解决您的问题?欢迎添加微信:18948083295,有微信小程序专业人员,保证有问必答。转载本站文章请注明转自http://www.okeydown.com/(微信小程序网)。

  • 微信扫描二维码关注官方微信
  • ▲长按图片识别二维码
关注我们

微信小程序官方微信

栏目最新
栏目推荐
返回顶部