zoukankan      html  css  js  c++  java
  • 微信小程序 原生框架 (分享方法封装)

    封装的分享方法

     1 function share(o,isDebug = false ) {
     2     //路径
     3     let url = o.url || getCurrentPages()[getCurrentPages().length - 1].route;
     4 
     5     //当前路径所带参数
     6     let urlParams = getCurrentPages()[getCurrentPages().length - 1].options;
     7 
     8     isDebug&&console.log(`当前路径所带参数:${JSON.stringify(urlParams)}`)
     9 
    10     //传进来的参数
    11     let params = o.params || {};
    12 
    13     isDebug&&console.log(`传进来的参数:${JSON.stringify(params)}`)
    14 
    15     //当前路径所带参数 合并 传进来的参数
    16     let mergeParams = Object.assign(urlParams, params);
    17 
    18     isDebug&&console.log(`合并后的参数:${JSON.stringify(mergeParams)}`)
    19 
    20     //最终参数 (根据是否合并(isMerge)决定最终路径上传递的参数)
    21     let resultParam = o.isMerge === true ? mergeParams : params;
    22 
    23     //url与最终参数的结合路径
    24     let path = (() => {
    25       let len = Object.keys(resultParam).length;
    26       if (len) {
    27         let res = ""
    28         for (let k in resultParam) {
    29           res += `&${k}=${resultParam[k]}`
    30         }
    31         return url + '?' + res.substring(1)
    32       } else {
    33         return url
    34       }
    35     })()
    36 
    37     isDebug&&console.log(`
    38         ----分享信息确认----
    39 
    40     是否跳转其他页面:${!!o.url ? o.url : !!o.url}
    41 
    42     是否设置分享显示的图片:${!!o.imgUrl ? o.imgUrl : !!o.imgUrl}
    43 
    44     是否合并了参数:${!!o.isMerge}
    45 
    46     分享的最终路径:${path}
    47     `)
    48 
    49     return o.imgUrl ? { title: o.title, path, imageUrl: o.imgUrl } : { title: o.title, path }
    50   }

    参数说明:share方法接收两个参数,第一个参数是一个对象,第二个参数是一个布尔值,默认是 false,表示不开启 debug,控制台不打印你分享的数据信息

    第一个参数是一个对象表示你传入的分享参数,包含以下:

    1. title :分享的标题
    2. url:分享跳转的链接地址
    3. imgUrl:分享的图片路径
    4. params:分享路径需要参数的参数  (对象类型)
    5. isMerge:是否合并(当前路径的参数和传入的参数)默认 false 不合并

    第二个参数是一个布尔值,表示是否开启控制台 打印分享数据信息,默认是 false 不打印,开发时建议设置为true,便于调式

    个人总结,难免疏于BUG,请留言。

  • 相关阅读:
    [转]Article: Invalid cross-thread operations
    【转】20余个国外免费英文电子书下载网站
    [转]推荐国外SQL Server学习网站
    【转】C#中的序列化和反序列化是什么、有什么作用、使用方法详解
    [转]How I explained OOD to my wife
    [转]How I explained Design Patterns to my wife: Part 1
    git和gitee的安装、上传和下载(一)
    【工作备忘】python读取oracle写入csv遇到的问题
    处理基地营地 html的python环境设置 (给同事参考的)
    爬虫scrapy-begin
  • 原文地址:https://www.cnblogs.com/studyshufei/p/12096888.html
Copyright © 2011-2022 走看看