Android微信分享学习笔记

来源:互联网 发布:网络棋牌作弊器下载 编辑:程序博客网 时间:2024/06/06 13:13

说明

只是简单的介绍通过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为从官网申请到的appIdprivate 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);}

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 0
原创粉丝点击