环境:
- 微信 SDK 版本: XCFramework 2.0.2,不包含支付功能。
- 手机: iPhone13,iOS 16.5
- 微信版本: 8.0.43
开发功能:分享 GIF 到微信
let emoObject = WXEmoticonObject()
emoObject.emoticonData = emojiData
let message = WXMediaMessage()
message.title = "HelloWorld"
message.description = "测试一下"
// 这里如果不传指或者传 nil 的话,分享 GIF 就会失败,[errorCode-5-微信不支持]
// 这里如果传递了一个完全不同的 GIF,可以发现整个分享过程并没有使用这个 thumbData 内容,而是一直使用 emoObject 内容
// 那么这个 thumbData 作为一个必须传递的参数,到底发挥了什么作用呢?
// 是为了兼容低版本吗?如果是为了兼容低版本,可以说一下是为了兼容哪个版本吗?影响范围大概是什么样的呢?
// 希望微信官方可以提供一些信息。
message.thumbData = thumbData
message.mediaObject = emoObject
let request = SendMessageToWXReq()
request.bText = false
request.message = message
WXApi.send(request) { _ in }
使用 WXEmoticonObject.emoticonData 装载了 GIF 文件,
如果我不传 thumbData 的话,分享就会失败。
但是我传递了 thumbData,分享可以成功,但是我发现微信并没有进行使用 thumbData 数据。
我故意传了一个体积很小并且和分享内容完全不同的 GIF作为 thumbData,发现在分享预览时展示的仍然是实际分享的 GIF 没有使用 thumbData 图片。
那么这里 thumbData 到底是起到什么作用呢?
我在开发者文档中,找到了分享小程序时 thumbData 的作用说明。描述如下
//兼容旧版本节点的图片,小于32KB,新版本优先使用 WXMiniProgramObject 的 hdImageData 属性
但是我没有找到分享 GIF 的 thumbData 的使用说明。
那么分享 GIF 时,thumbData 作为一个必须传递的参数,到底是起到了什么作用呢?
是为了兼容低版本吗?如果是为了兼容低版本,可以说一下是为了兼容哪个版本吗?影响范围大概是什么样的呢?希望微信官方可以提供一些信息。
Android SDK 版本如下 com.tencent.mm.opensdk:wechat-sdk-android:6.8.0 查看源码发现这里的确对 查看源码发现这里的确对 TYPE_EMOJI = 8 做了判断 thumbData 不可为空, 且要求其长度需居于区间 (0, 64K) 内 那目的到底是什么那?thumbData 的作用是什么那?
thumbData是封面图,也就是你收藏的那个缩略图,不能超过64k,不然发不出去
有微信的官方人员解释一下吗?谢谢🙏