android微信分享之视频、URL地址、表情分享
1、视频分享
1、创建WXVideoObject对象,用于指向视频URL
WXVideoObject videoObject = new WXVideoObject();
// 2、设置视频url
videoObject.videoUrl = "http://v.youku.com/v_show/id_XMzI0MzA3NjI1Ng==.html?spm=a2hww.20022069.m_215416.5~5~5~5!2~A";
// 3、创建WXMediaMessage对象,
WXMediaMessage msg = new WXMediaMessage();msg.mediaObject = videoObject;msg.title = "内涵段子";msg.description = "很搞笑哦";
// 4、设置缩略图
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), android.R.drawable.dialog_frame);msg.thumbData = bitmapToByteArray(bitmap, true);SendMessageToWX.Req req = new SendMessageToWX.Req();req.message = msg;req.transaction = buildTransction("video");req.scene = send_friend.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;api.sendReq(req);
2、URL地址分享
WXWebpageObject WebObj = new WXWebpageObject();
WebObj.webpageUrl = "https://ke.qq.com/";
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = WebObj;
msg.title = "腾讯课堂";
msg.description = "视频你懂得哦!";
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), android.R.drawable.ic_input_add);
msg.thumbData = bitmapToByteArray(bitmap, true);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransction("url");
req.message = msg;
req.scene = send_friend.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
api.sendReq(req);
3、表情分享(注意 动态表情只能发给好友!朋友圈发送有问题!)
String path = "/storage/emulated/0/Tencent/QQ_Images/t01392d77969f7e42b2.gif"; WXEmojiObject emojiObj = new WXEmojiObject(); emojiObj.emojiPath = path; WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = emojiObj; msg.title = "表情标题"; msg.description = "表情描述"; Bitmap bitmap = BitmapFactory.decodeResource(getResources(), android.R.drawable.ic_input_add); msg.thumbData = bitmapToByteArray(bitmap, true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransction("emoji"); req.message = msg; req.scene = SendMessageToWX.Req.WXSceneTimeline; api.sendReq(req);
总结
2. 检测
方法 | 说明 |
---|---|
boolean isWXAppInstalled() | 用于检查本机是否安转微信 |
2. 根据不同的分享对象创建不同的媒体对象封装
分享对象 | 封装对象 | 示例 | 不能超过的长度 |
---|---|---|---|
文字 | WXTextObject | 构造函数:WXTextObject(String shareText); 或者是用属性public String text 赋值 | 10KB |
图片 | WXImageObject | 构造函数WXImageObject(Bitmap shareImage); WXImageObject(byte[] shareImage) 或者属性public byte[] imageData 封装图片二进制数据、属性public String imagePate 封装本地图片路径以及方法public void setImagePath(String imagePath)封装网络图片 | 10MB |
音乐 | WXMusicObject | 属性public String musicUrl 属性封装音频网站的URL地址 | 10KB(地址) |
视频 | WXVideoObject | 属性public String videoUrl 属性封装视频链接 | 10KB(地址) |
网页 | WXWebpageObject | 属性public String webpageUrl 属性封装html链接 | 10KB(地址) |
表情 | WXEmojiObject | 构造函数WXEmojiObject(String emojiPath); 和WXEmojiObject(byte[] emojiData); 或者是方法public void setEmojiData(byte[] emojiData) 和public void setEmojiPath(String emojiPath) |
这五个类都是Interface WXMediaMessage.IMediaObject
的子类。
3. 创建WXMediaMessage用来接受被封装的对象。
属性 | 作用 | 不能超过的长度 |
---|---|---|
public WXMediaMessage.IMediaObject mediaObject | 接受封装的媒体对象 | |
public java.lang.String description | 分享显示的消息描述 | 1KB |
public java.lang.String title | 分享消息标题 | 512Bytes |
public byte[] thumbData | 分享显示的缩略图的二进制数据 | 32KB |
一般缩略图,是将bitmap通过其public boolean compress(CompressFormat format, int quality, OutputStream stream)
方法要压缩后获取。
参考方法
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
注:借鉴于 (慕课网)