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
注:借鉴于 (慕课网)