微信小程序 原生框架 (分享方法封装)
封装的分享方法
 function share(o,isDebug = false ) {
     //路径
     let url = o.url || getCurrentPages()[getCurrentPages().length - 1].route;
     //当前路径所带参数
     let urlParams = getCurrentPages()[getCurrentPages().length - 1].options;
     isDebug&&console.log(`当前路径所带参数:${JSON.stringify(urlParams)}`)
     //传进来的参数
     let params = o.params || {};
     isDebug&&console.log(`传进来的参数:${JSON.stringify(params)}`)
     //当前路径所带参数 合并 传进来的参数
     let mergeParams = Object.assign(urlParams, params);
     isDebug&&console.log(`合并后的参数:${JSON.stringify(mergeParams)}`)
     //最终参数 (根据是否合并(isMerge)决定最终路径上传递的参数)
     let resultParam = o.isMerge === true ? mergeParams : params;
     //url与最终参数的结合路径
     let path = (() => {
       let len = Object.keys(resultParam).length;
       if (len) {
         let res = ""
         for (let k in resultParam) {
           res += `&${k}=${resultParam[k]}`
         }
         return url + '?' + res.substring(1)
       } else {
         return url
       }
     })()
     isDebug&&console.log(`
         ----分享信息确认----
     是否跳转其他页面:${!!o.url ? o.url : !!o.url}
     是否设置分享显示的图片:${!!o.imgUrl ? o.imgUrl : !!o.imgUrl}
     是否合并了参数:${!!o.isMerge}
     分享的最终路径:${path}
     `)
     return o.imgUrl ? { title: o.title, path, imageUrl: o.imgUrl } : { title: o.title, path }
   }
参数说明:share方法接收两个参数,第一个参数是一个对象,第二个参数是一个布尔值,默认是 false,表示不开启 debug,控制台不打印你分享的数据信息
第一个参数是一个对象表示你传入的分享参数,包含以下:
- title :分享的标题
 - url:分享跳转的链接地址
 - imgUrl:分享的图片路径
 - params:分享路径需要参数的参数 (对象类型)
 - isMerge:是否合并(当前路径的参数和传入的参数)默认 false 不合并
 
第二个参数是一个布尔值,表示是否开启控制台 打印分享数据信息,默认是 false 不打印,开发时建议设置为true,便于调式
个人总结,难免疏于BUG,请留言。
微信小程序 原生框架 (分享方法封装)的更多相关文章
- 微信小程序request(ajax)接口请求封装
		
微信小程序request(ajax)接口请求封装 最近在进行小程序的编写,需要调用后端接口,经常要用到wx.request方法,所以就自己封装了一下,简化一下代码,如果能给大家提供帮助更好,在封装的时 ...
 - 微信小程序 wafer2框架摘要
		
微信小程序 wafer2框架摘要 帮助文档:https://github.com/tencentyun/wafer2-startup/wiki 使用了knex.js进行数据库交互,使用了koa.js进 ...
 - 微信小程序开发-框架
		
小程序开发框架的目标是通过尽可能简单.高效的方式让开发者可以在微信中开发具有原生 APP 体验的服务.框架提供了自己的视图层描述语言 WXML 和 WXSS,以及基于 JavaScript 的逻辑层框 ...
 - 微信小程序之生成图片分享
		
通过社交软件分享的方式来进行营销小程序,是一个常用的运营途径.小程序本身支持直接将一个小程序的链接卡片分享至微信好友或微信群,然后别人就可以通过点击该卡片进入该小程序页面.但是小程序目前不支持直接分享 ...
 - 微信小程序首次官方分享的纪要
		
先交代备注: 这次有关小程序的分享只有技术的 QA环节,其他如产品.入口.流量.与公众号的整合等等,回答都是暂时无法给出答案或不确定: 小程序最终发布时间官方也还未确定,不过说应该就是近期: 小程序的 ...
 - 微信小程序API交互的自定义封装
		
目录 1,起因 2,优化成果 3,实现思路 4,完整代码 1,起因 哪天,正在蚂蚁森林疯狂偷能量的我被boss叫过去,告知我司要做一个线上直播公开课功能的微信小程序,博主第一次写小程序,复习了下文档, ...
 - 微信小程序如何重写Page方法?以及重写Page方法给开发者带来的好处
		
17,18年的时候,我当时主要开发小程序,那时候领导想看一下小程序的访问量,还有一些埋点的需求,于是我们的小程序就接入了阿拉丁统计. 阿拉丁的接入方式除了配置以外,主要就一行引入代码.官方要求将以下代 ...
 - 微信小程序页面跳转方法总结
		
微信小程序页面跳转目前有以下方法(不全面的欢迎补充): 1. 利用小程序提供的 API 跳转: // 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面.// 注 ...
 - 微信小程序中使用Async-await方法异步请求变为同步请求
		
微信小程序中有些 Api 是异步的,无法直接进行同步处理.例如:wx.request.wx.showToast.wx.showLoading等.如果需要同步处理,可以使用如下方法: 注意: Async ...
 
随机推荐
- 17多校6 HDU - 6102
			
题意:给一个排列p,m次查询l,r,\(\sum_{i=l}^r\sum_{j=i+1}^r\sum_{k=j+1}^r[gcd(p_i,p_j)==p_k]p_k\) 题解:离线,枚举右端点,对于每 ...
 - R语言:表格的线图转化
			
R语言:表格的线图转化 最先选取的是北京各区普通住宅成交十年(2016年及2006年)涨幅对比.这张图比较plain,主要拿来练习: 1.数据表格的基本整理及计算 2. 数据的初步分析 3.线图的基本 ...
 - OCCT 7.4.0 beta version is available
			
OpenCASCADE 7.4.0测试版本发布 OCC在9月16号发布了opencascade740 beta测试版本,新版本里面做了如下一些重点修改如下: 造型算法部分主要对网格化算法BRepMes ...
 - HTML 项目符号
			
无序符号 <ul> <li> </li> <li> </li> <li> </li> </ul> 属性 ...
 - vue 实现单选框
			
参考:https://blog.csdn.net/qq_42221334/article/details/81630634 效果: vue: <template> <div> ...
 - iOS汇编系列-汇编入门
			
概述 汇编语言(Assembly Language)用符号代替了0和1,比机器语言更便于阅读和记忆. 但是同样汇编语言同样指令太多不便于记忆,就出现了高级语言.C\C++\Java\Swift等,更接 ...
 - springBoot 项目 jar/war打包 并运行
			
一:idea 打jar 包 简述:springboor 项目最好的打包方式就是打成jar ,下边就是简单的过程 1.打开idea工具 ,选着要打开的项目, 然后打开view--> too ...
 - mysql-connector-java-8.0.12使用时报错
			
配置url加 &useSSL=false&serverTimezone=UTC 就可以了
 - 2018-12-6-Roslyn-如何基于-Microsoft.NET.Sdk-制作源代码包
			
title author date CreateTime categories Roslyn 如何基于 Microsoft.NET.Sdk 制作源代码包 lindexi 2018-12-06 16:2 ...
 - csp-s模拟测试b组加餐antipalindome,randomwalking,string题解
			
题面:https://www.cnblogs.com/Juve/articles/11599318.html antipalindome: 打表找规律? 对于一个回文串,我们只要保证3位以内不回文即可 ...