设定小程序全局分享方法,搜索到的思路通常如下:
引用
小程序的全局分享方法onShareAppMessage
思路是子类重写。
但我遇到的问题是:
- 微信开发工具自动为每个页面添加了空白的onShareAppMessage方法;
- 无法约束后续的开发者,不要添加空白函数。
以上可以用脚本一次性清除已有的空白函数,再辅助以code linting。
单更好的思路是装饰器模式(以下代码只是用了思想)
! function () {
const PageTmp = Page;
Page = function (pageConfig) {
let _onShareAppMessage = function() {};
// 隐藏原有实现
if(typeof pageConfig.onShareAppMessage != 'undefined'
&& pageConfig.onShareAppMessage instanceof Function){
_onShareAppMessage = pageConfig.onShareAppMessage;
}
pageConfig.onShareAppMessage = function(params) {
let shareInfo = _onShareAppMessage.call(this, params);
// 在原实现的基础上增强能力
if (typeof shareInfo == 'undefined') {
// 本例:没有实现onShareAppMessage的Page,补充该能力
shareInfo = {
title: '标题',
imageUrl: '图片',
path: '路径'
}
}
return shareInfo;
}
PageTmp(pageConfig);
}
}();
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。