微信小程序 原生框架 (分享方法封装)

封装的分享方法

 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,请留言。

原文地址:https://www.cnblogs.com/studyshufei/p/12096888.html

时间: 2024-08-29 00:14:45

微信小程序 原生框架 (分享方法封装)的相关文章

微信小程序的正确开启方法,最新更新小程序附带详细图

我的微信版本早就更新到了最新版本V6.5.3 ,但是找遍了每个角落,都始终见不到"小程序"相关的东西,后来才知道,正确的开启方法如下! 打开微信,搜索"小程序示例"即可,点击小程序,进入界面,退出来之后会在"发现"一栏的最下面有"小程序的选项",详细的看下图.等添加完之后就可以从里面搜索小程序,添加小程序了! 看到了吧,非常多的小程序,可以免下载很多APP,节省手机空间. 但是,这个小程序搜索有个规则,就是你要搜索小程序,必须

微信小程序代码片段分享

Thor UI组件库,微信小程序源码分享 原文地址:https://blog.51cto.com/12418608/2409634

微信小程序页面跳转方法总结

微信小程序页面跳转目前有以下方法(不全面的欢迎补充): 1. 利用小程序提供的 API 跳转: // 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面. // 注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,但是 redirectTo wx.navigateTo({ url: 'page/home/home?user_id=111' }) // 关闭当前页面,返回上一页面或多级页面.可通过 getCurrentPages() 获取当

微信小程序实例:分享给一个人还是分享到群的判断代码

微信小程序的分享功能,在最新版库的ide上已经不能拿到分享回调了,官方api也删除了对应的回调函数,看样子是砍掉了,不过真机测试还是可以的,话不多说,上代码: /* // 分享功能回调 onLoad: function (options) { wx.showShareMenu({ //只有拥有 shareTicket 才能拿到群信息,用户每次转发都会生成对应唯一的shareTicket . withShareTicket: true }); }, onShareAppMessage: funct

微信小程序图片变形解决方法

微信小程序的image标签中有个mode属性,使用aspectFill即可 注:image组件默认宽度300px.高度225px mode 有效值: mode 有 13 种模式,其中 4 种是缩放模式,9 种是裁剪模式.

一种轻量级的微信小程序日志监控的方法

今天一个活动要写个H5,明天一个功能要用小程序,天天都在写bug.用户反馈小程序用起来有问题还特么还不知道到底出了啥bug,反馈多了,老板要扣工资了!看来挖了太多坑不填也不行,程序异常还是要主动追踪,今天给大家介绍一个轻量级的错误日志监控服务Fundebug. Fundebug的小程序监控插件接入简单,只需要下载相应的插件文件,然后在app.js文件中引入并配置apikey即可.唯一要注意的就是微信需要设置request合法域名这一点不能忘记了. 1. 创建微信小程序监控项目 需要注册账号,点击

微信小程序原生开发简介

简介: 总结: 1. 逻辑层使用js引擎,视图层使用webview渲染 2. 微信小程序已经支持了绝大部分的 ES6 API 3. 可以自动补全css的兼容语法 文档:https://developers.weixin.qq.com/miniprogram/dev/framework/details.html 一. 设计 总结: 设计图750px, 1px =  1rpx,方便计算 二. 小程序页面结构 wxml: 功能类似html,描述节点,但小程序的 WXML 用的标签是 view, but

微信小程序之获取分享码

我使用的是接口B生成二维码 1.首先根据提示,发起请求填写参数小程序的appid和密钥,获得返回数据中的access_token 2.然后拿到access_token再发起请求 这一切都在后端做,因为小程序访问网址需要配置服务器域名,而本网址的api.weixin.qq.com不能配置在小程序要使用的服务器域名中. 此时后端发起这两个请求后得到的数据如果传给前端,会得到如图所示的结果 不要怀疑,这的确是二维码的数据,但是它是进制流数据,后端需要使用方法将其转换为base64,再传给前端使用.如P

微信小程序——极点日历使用方法

极点日历github项目地址 添加至自己的小程序方法 极点日历属性接口文档 代码实例: xml: <calendar calendar-style="calendar" header-style="calendar-header" board-style="calendar-board" days-color="{{dayStyle}}" weeks-type="cn" binddayClick=&q