由于小程序的分享(微信、头条平台),需要监听页面的onShareAppMessage生命周期,小程序需要在页面声明了此生命周期,点击右上角的"胶囊"才会有分享功能,
而一般情况下,我们希望每个页面都可以分享,那就需要每个页面都写一遍这个生命周期,是很繁琐的。
基于以上,开源字节基于uview通过mixin的形式,给每一个页面注入了onShareAppMessage生命周期,让您简单引入,无需任何后续操作,即可让每一个页面都有分享功能(仅针对小程序)。
需要注意的是,小程序(uni)没有提供类似"getNavigationBarTitle"这样的接口,所以我们无法获取当前页面导航栏的标题,换言之,我们想要每个页面个性化的分享标题,需要手动设置,否则默认为小程序的名称。
let mpShare = require('uview-ui/libs/mixin/mpShare.js');Vue.mixin(mpShare)
// 分享自定义标题与图片let shareTitle = ''if(room.type == '整租'){shareTitle = this.village.name + " " + this.room.houseNum + this.room.houseHall + this.room.toiletNum + " " + this.room.decoration+ " ¥" + this.room.price+"/月"}else{shareTitle = this.village.name + " " + room.roomType + " " + this.room.decoration+ " ¥" + this.room.price+"/月"}this.$u.mpShare = {title: shareTitle, // 默认为小程序名称,可自定义// 支持PNG及JPG,默认为当前页面的截图imageUrl: this.room.faceUrl, }
开源字节追求用更简单的逻辑,更少的代码实现更复杂的功能。以上代码在开源字节的租房小程序中都已开源上线,可前往仓库获取源码
如若转载,请注明出处:开源字节
https://sourcebyte.cn/article/210.html