小程序的全局分享方法onShareAppMessage(思考)

设定小程序全局分享方法,搜索到的思路通常如下:

引用
小程序的全局分享方法onShareAppMessage

思路是子类重写。
但我遇到的问题是:

  1. 微信开发工具自动为每个页面添加了空白的onShareAppMessage方法
  2. 无法约束后续的开发者,不要添加空白函数。

以上可以用脚本一次性清除已有的空白函数,再辅助以code linting。
单更好的思路是装饰器模式(以下代码只是用了思想)

! function () {
 const PageTmp = Page;
 Page = function (pageConfig) {
 pageConfig.innerShareAppMessage = function() {};
 // 隐藏原有实现
 if(typeof pageConfig.onShareAppMessage != 'undefined' 
 && pageConfig.onShareAppMessage instanceof Function){ 
 pageConfig.innerShareAppMessage = pageConfig.onShareAppMessage;
 }
 pageConfig.onShareAppMessage = function() {
 let shareInfo = this.innerShareAppMessage();
 // 在原实现的基础上增强能力
 if (typeof shareInfo == 'undefined') {
 // 本例:没有实现onShareAppMessage的Page,补充该能力
 shareInfo = {
 title: '标题',
 imageUrl: '图片',
 path: '路径'
 }
 }
 return shareInfo;
 }
 PageTmp(pageConfig);
 }
}();
作者:不老王原文地址:https://segmentfault.com/a/1190000043274064

%s 个评论

要回复文章请先登录注册