2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 微信小程序-全局分享 自定义分享

微信小程序-全局分享 自定义分享

时间:2023-11-21 05:14:57

相关推荐

微信小程序-全局分享 自定义分享

初六复工,难以接受,我甚至能接受今天是我六十大寿但是我难以接受今儿是正月初六。

言归正传

年前写了个分享,还要所有的页面都要有分享,那我岂不是每个页面都要写一个onShareAppMessage?nonono,这不能这么干,这违背了我们少写一行是一行的理念。
所以,我得写个全局的分享,但是这个onShareAppMessage的触发点只有button和胶囊的三个点点,所以并不是简单的写个公共方法就能解决的事儿。

经过不懈的研究,写了以下demo,供大家参考。

首先呢这个方法得写在app.js里面

app.js

//这个function是要写在APP()的外面!function () {var PageTmp = PagePage = function (pageConfig) {let routerUrl = ""wx.onAppRoute(function (res) {let pages = getCurrentPages(), view = pages[pages.length - 1];routerUrl = view.route})pageConfig = Object.assign({onShareAppMessage: function () {//需要单独写分享方法的页面let noGlobalSharePages=["pages/a/a","pages/b/b"]//分享的时候要携带的参数let obj = {userId: config.user_name}let value = encodeURIComponent(JSON.stringify(obj))let shareObj={}//判断当前页面是不是需要单独写分享方法的页面if (!routerUrl.includes(noGlobalSharePages)){shareObj={title:config.text,path: 'pages/home/home?obj=' +value,imageUrl: config.ShareImg}}return shareObj}}, pageConfig);PageTmp(pageConfig);}}();APP({globalData:...,onshow(){...}})

这个方法就基本成型了

然后呢,我在写的时候遇到了个小问题,就是我在这个方法里面拿不到globalData的数据,所以我就定义了个全局变量,在小程序初始化的时候把我需要用到的this.globalData赋值到我定义的变量上面

let config;APP({onLunch(){// 赋值config=this.globalData;},globalData:{user_name:'..',text:'...',ShareImg:'....'}})用的时候就是 config.text这样就行啦

这样的话,想用这个方法得页面就不能在页面的js里面写onShareAppMessage了,不然会把app.js里面的分享方法给覆盖掉

还有,如果想在某个页面里面写个单独的分享方法,就在js里面写个普通的onShareAppMessage就可以啦

mine.js

onShareAppMessage(){return {title:'我是一朵花',path:'...',imageUrl:'...'}}

这就大功告成啦!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。