为啥需要这个?
有时候我们写微信小程序,写好了。在手机上运行感觉效果还不错,正想分享给别人。突然发现没有分享选项,纳尼?原来是忘记写
onShareAppMessage()了。有得加上,再编译。不得不说,麻烦的一匹。
应运而生
然后我就想,要是可以让默认支持分享就好了。
wepy实现方法
大致思路
import wepy from 'wepy';
export default class Page extends wepy.page {
}
分析代码,发现所有的
page都继承于wepy.page, 而wepy.page又继承于wepy.component. 这感情好。也就意味着我只需要构建一个超类继承wepy.page就可以了
实践
新建page.js文件,内容如下
import wepy from 'wepy';
export default class Page extends wepy.page {
onShareAppMessage() {
}
}
然后再调整一下页面继承
import Page from '../page';
export default class Index extends Page {
}
编译运行,果然如此!
如果要自定义分享内容怎么办?
在子page里面重构
onShareAppMessage就可以啦。
tips: 现使用uni-app后发现已经默认支持分享了
后续: uni-app说这是个BUG,已经修复了。。
后备方案——使用mixin全局混入
- 在main.js中添加以下内容。
import qs from 'query-string'
Vue.mixin({
onShareAppMessage() {
console.log('分享路径', '/pages/index?route=' + this.$mp.page.route + '&' + qs.stringify(this.$mp.query))
return {
path: '/pages/index?route=' + this.$mp.page.route + '&' + qs.stringify(this.$mp.query)
};
}
})
以上代码实现了所有页面都支持转发,并将转发路径设为主页。



























