微信分享

  1. 添加微信分享依赖
    compile ‘com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.0.2’

2.通过WXAPIFactory打开微信客户端 首先应用审核没有通过也可以打开微信
private static final String app_id = “”;//申请应用分配的appid
private IWXAPI api;//第三方app和微信通信的openapi接口
api = WXAPIFactory.createWXAPI(this, app_id, true);

iwxapi.registerApp(app_Id);//将app_id注册到微信中
boolean b = api.openWXApp();//打开微信app
//微信开发资源中
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317340&token=&lang=zh_CN
3.发送文本信息
//创建一个用于封装待分享文本的TextObject对象
WXTextObject textObject = new WXTextObject();
textObject.text = “abc”;
//创建WXMediaMessage 用于传输 android客户端向微信客户端发送数据
WXMediaMessage wxMediaMessage = new WXMediaMessage();
wxMediaMessage.mediaObject = textObject;
//创建一个用于请求微信客户端的SendMessageToWX对象
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.message = wxMediaMessage;//发送的消息
req.transaction = getTransaction(“text”);//用于唯一标识一个请求
req.scene = SendMessageToWX.Req.WXSceneSession;//发送给朋友
req.scene = SendMessageToWX.Req.WXSceneTimeline;//发送给朋友圈
// 发送给微信客户端
boolean b = iwxapi.sendReq(req);//发送是否成功
3.2 根据类型返回唯一标识
public String gettTransaction(String type) {
return type == null ? String.valueOf(System.currentTimeMillis()) : String.valueOf(System.currentTimeMillis()) + type;
}
4.发送二进制图片
//获取二进制图像的bitmap对象
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
//创建WXImageObject对象 并包装bitmap
WXImageObject wxImageObject = new WXImageObject(bitmap);
//创建WXMediaMessage对象 并包装WXImageObject对象
WXMediaMessage wxMediaMessage = new WXMediaMessage();
wxMediaMessage.mediaObject = wxImageObject;
//压缩图像
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, 120, 150, true);
//释放图像所占用内存资源
bitmap.recycle();
wxMediaMessage.thumbData = bitmapToByte(scaledBitmap, true);//设置缩略图
SendMessageToWX.Req req=new SendMessageToWX.Req();
req.transaction=gettTransaction(“img”);//设置发送标识
req.message=wxMediaMessage;
req.scene=SendMessageToWX.Req.WXSceneSession;//朋友
req.scene=SendMessageToWX.Req.WXSceneTimeline;//朋友圈
req.scene=SendMessageToWX.Req.WXSceneFavorite;//收藏

        iwxapi.sendReq(req);
        //将bitmap转换成二进制格式数组
public byte[] bitmapToByte(Bitmap bitmap, boolean isNeedRecycle) {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, bos);//压缩成100%的png格式
    if (isNeedRecycle) {
        bitmap.recycle();
    }
    byte[] result = bos.toByteArray();
    try {
        bos.close();
    } catch (IOException e) {
        e.printStackTrace     }

}
return
result;
}

5.分享本地图片到微信朋友圈
和上面的基本上一样,只是第一步中Bitmap不是通过BitmapFactroy获得,而是通过 wxImageObject.setImagePath(path);获得的这个路径就是一个sd卡中存放图片文件的路径 可以先通过File file=new File(path);来判断一下文件是否存在
6.分享图片通过url 只是获取图片需要通过流读取 要通过wxImageObject
BitmapFactory.decodeStream(new URL(“”).openStream()); 7.分享音频
//创建WXMusicObject对象 指定音频musicUrl
WXMusicObject wxMusicObject = new WXMusicObject();
wxMusicObject.musicUrl = “”;
//创建WXMediaMessage 包装WXMusicObject对象
WXMediaMessage wxMediaMessage = new WXMediaMessage();
wxMediaMessage.mediaObject = wxMusicObject;
wxMediaMessage.title = “我是标题”;
wxMediaMessage.description = “我是描述”;
//设置缩略图
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
wxMediaMessage.thumbData = bitmapToByte(bitmap, true);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = gettTransaction(“music”);
req.message = wxMediaMessage;
req.scene = SendMessageToWX.Req.WXSceneTimeline;
iwxapi.sendReq(req);
7.分享音频
WXVideoObject wxVideoObject=new WXVideoObject();
wxVideoObject.videoUrl=”“;
WXMediaMessage wxMediaMessage=new WXMediaMessage();
wxMediaMessage.title=”“;
wxMediaMessage.description=”“;
wxMediaMessage.mediaObject=wxVideoObject;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
byte[] bytes = bitmapToByte(bitmap, true);
wxMediaMessage.thumbData=bytes;
SendMessageToWX.Req req=new SendMessageToWX.Req();
req.message=wxMediaMessage;
req.transaction=gettTransaction(“video”);
req.scene= SendMessageToWX.Req.WXSceneTimeline;
iwxapi.sendReq(req);
8.分享url到微信
WXWebpageObject wxEmojiObject=new WXWebpageObject();
wxEmojiObject.webpageUrl=”“;
WXMediaMessage wxMediaMessage=new WXMediaMessage(wxEmojiObject);
wxMediaMessage.title=”“;
wxMediaMessage.description=”“;
wxMediaMessage.thumbData=bitmapToByte(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher),true);
SendMessageToWX.Req req=new SendMessageToWX.Req();
req.transaction=gettTransaction(“webpage”);
req.scene=SendMessageToWX.Req.WXSceneTimeline;
req.message=wxMediaMessage;
iwxapi.sendReq(req);
9.发送表情到微信
WXEmojiObject wxEmojiObject=new WXEmojiObject();
wxEmojiObject.emojiPath=”“;//对应表情文件路径
WXMediaMessage wxMediaMessage=new WXMediaMessage(wxEmojiObject);
wxMediaMessage.title=”“;
wxMediaMessage.description=”“;
wxMediaMessage.thumbData=bitmapToByte(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher),true);
SendMessageToWX.Req req=new SendMessageToWX.Req();
req.transaction=gettTransaction(“emotion”);
req.scene=SendMessageToWX.Req.WXSceneTimeline;
req.message=wxMediaMessage;
iwxapi.sendReq(req);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值