android微信分享之视频、URL地址、表情分享

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)方法要压缩后获取。

参考方法

//将bitmap转换为byte[]格式
private byte[] bmpToByteArray(final Bitmap bitmap, final boolean needRecycle){
   ByteArrayOutputStream output = new ByteArrayOutputStream();
   bitmap.compress(Bitmap.CompressFormat.PNG, 100, output);
   if(needRecyle){
      bitmap.recyle();
   }
 byte[] result = output.toByteArray();
 try{
    output.close;
 }catch(Exception e){
    e.printStackTrace();
 }
 return result;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

注:借鉴于 (慕课网)






你可能感兴趣的:(Android开发)