微信小程序,onShareAppMessage自定义分享页面封装后,无法显示自定义页面?
目前使用的原生微信小程序,开发了一个自定义分享页面功能,目前是正常的。
但是我们现在要做,“私密消息”,所以需要把onShareAppMessage
函数中代码全部提炼出去,然后分情况调用这部分代码,但是测试过程中发现,只要把代码提炼出去(放到一个函数里面),其他啥都不变,就无法显示自定义分享页面了,而是显示默认的分享页面,这是怎么回事?
改动前:
onShareAppMessage: function (options) {
//省略代码
}
改动后:
handleShare(options) {
//省略代码
},
onShareAppMessage: function (options) {
this.handleShare(options)
}
原有逻辑提炼到单独方法代码:
handleShare(options) {
///////////////////////////////////////////////////
let cardObj = options.target.dataset.obj
let title = "您好,我是" + cardObj.name + ",这是我的名片"
// 设置菜单中的转发按钮触发转发事件时的转发内容
var shareObj = {
title: title,// 默认是小程序的名称(可以写slogan等)
path: '/pages/busCard/home/home',// 默认是当前页面,必须是以‘/’开头的完整路径
imageUrl: cardObj.bigProfileUrl,//自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径,支持PNG及JPG,不传入 imageUrl 则使用默认截图。显示图片长宽比是 5:4
success: function (res) {
// 转发成功之后的回调
if (res.errMsg == 'shareAppMessage:ok') {
//记录操作日志
let userInfo = util.getUserInfo()
util.addLog(userInfo.openId, 4)
}
},
fail: function () {
// 转发失败之后的回调
if (res.errMsg == 'shareAppMessage:fail cancel') {
// 用户取消转发
} else if (res.errMsg == 'shareAppMessage:fail') {
// 转发失败,其中 detail message 为详细失败信息
}
},
complete: function(){
// 转发结束之后的回调(转发成不成功都会执行)
}
};
// 来自页面内的按钮的转发
if(options.from == 'button'){
// 此处可以修改 shareObj 中的内容
shareObj.path = '/pages/busCard/home/home?test=1&source=share&openId=' + cardObj.openId;
}
// 返回shareObj
console.log(JSON.stringify(shareObj))
return shareObj;
///////////////////////////////////////////////////
},
回复
1个回答
test
2024-07-02
handleShare(options) {
retuern { title: xxxx }
},
onShareAppMessage: function (options) {
// 这加个return
return this.handleShare(options)
}
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容