Android微信分享小结

说明

只是简单的介绍通过IWXAPI的 sendReq将请求发送到微信终端,分享信息。
基本参考微信开放平台微信开放平台接入指南总结部分API。

介绍

微信分享及收藏是指第三方App通过接入该功能,让用户可以从App分享文字、图片、音乐、视频、网页至微信好友会话、朋友圈或添加到微信收藏。

简单介绍大概流程

  1. 微信开房平台注册登录;
  2. 创建应用(包名可以修改)获取appId;
  3. 下载libammsdk.jar导入到eclipse/Android Studio中,配置清单文件的相关权限;
  4. 在使用处如:Activity的onCreate、Fragment的onCreateView处初始化和注册IWXAPI,建立起app与微信的通信;
  5. 添加分享代码。

初始化注册及分享代码思路

1. 初始化注册
//APP_ID为从官网申请到的appId
private static final String APP_ID = "";
//IWXAPI是第三方app和微信通信的openapi接口
private IWXAPI api;
private void regToWx(){
    //通过WXAPIFactory工厂,获取IWXAPI的实例
    api = WXAPIFactory.createWXAPI(this, APP_ID,true);
    //将应用的appId注册到微信
   api.resterApp(APP_ID);
}
方法说明
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;
}

源自慕课网之微信SDK-分享你的朋友圈

4.创建SendMessageToWX.Req用于发送数据

在这里可是设置是分享给朋友、分享到朋友圈还是收藏。

属性说明
public WXMediaMessage message分享请求的WXMediaMessage数据
public int scene发送的目标场景, 可以选择发送到会话 WXSceneSession 或者朋友圈 WXSceneTimeline。 默认发送到会话。
public static final int WXSceneTimeline发送的目标场景,表示发送朋友圈
public static final int WXSceneSession发送的目标场景,表示发送到会话
public static final int WXSceneFavorite发送的目标场景,表示发送到微信收藏
public java.lang.String transaction来自父类BaseReq,对应该请求的事务ID,通常由Req发起,回复Resp时应填入对应事务ID,一般用类型+当前时间毫秒值表示

tracsaction生成方法

private String buildTransaction(final String type){
    return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
}

源自慕课网之微信SDK-分享你的朋友圈

5.发送
api.sendReq(req);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值