我们项目中经常会用到微信分享,好友分享,朋友圈分享,收藏等功能,虽然开发了很多遍可能还是遇到各种问题,今天主要整理我在开发中遇到的问题;
1.分享图片问题
开发者在 App 中在集成微信 SDK 后,可调用接口实现,依次支持文字、图片、音乐、视频、网页、小程序类型分享,分享支持参考如下:WXMediaMessage (微信媒体消息内容)说明 | 微信开放文档;
今天主要讲讲图片分享我遇到的一些问题,首先了解分享图片的限制如下:
WXMediaMessage (微信媒体消息内容)说明
字段 | 类型 | 含义 | 备注 |
---|---|---|---|
sdkVer | int | sdk 版本号 | |
title | String | 消息标题 | 限制长度不超过 512Bytes |
description | String | 消息描述 | 限制长度不超过 1KB |
thumbData | byte[] | 缩略图的二进制数据 | 限制内容大小不超过 32KB |
mediaObject | WXMediaMessage.IMediaObject | 消息对象 | 用于描述一个媒体对象的接口,媒体对象包括: WXTextObject、WXImageObject、WXMusicObject、WXVideoObject、WXWebpageObject、 WXFileObject、WXAppExtendObject、WXMiniProgramObject 等 |
我主要讲一下thumbData限制的处理方式:
- 等比压缩图片到指定大小,目的压缩图片大小保持图片可以看清,同时保证不变形;
- 降低图片质量直到图片大小达到32KB;
为什么分两步呢,而不是只有最后一步呢?防止原图过大,导致压缩时间过长;
实例代码如下:
微信分享图片代码
/**
* 分享图片到朋友圈或者好友
*
* @param bmp 图片的Bitmap对象
* @param scene 分享方式:好友还是朋友圈
*/
public boolean sharePic(Bitmap bmp, int scene) {
//初始化一个WXImageObject对象
WXImageObject imageObj = new WXImageObject(bmp);
//1.设置缩略图
Bitmap thumb = thumbBmp(bmp, 300,300);
b