Android实现微信分享带有缩略图的网页
程序员文章站
2024-02-11 23:48:28
前言
最近做了一个web app 需要做微信分享。
需求是分享web页还要带有图片,并且图片还不是本地的,这就有点坑了,
也就是说图片还要从网络实时获取并且是同步的,...
前言
最近做了一个web app 需要做微信分享。
需求是分享web页还要带有图片,并且图片还不是本地的,这就有点坑了,
也就是说图片还要从网络实时获取并且是同步的,如果是异步的还需要等待(用户体验就不好了)
代码如下
/** * 微信分享 好友 */ public void wxhyshare(string shareurl, string title, string image, string desc) { iwxapi api = wxapifactory.createwxapi(context, constant.wx_app_id); wxwebpageobject webpage = new wxwebpageobject(); webpage.webpageurl = shareurl; wxmediamessage msg = new wxmediamessage(webpage); //msg.title = context.getstring(r.string.app_name); msg.title = title; msg.description = desc; //图片加载是使用的imageloader.loadimagesync() 同步方法 //并且还要创建图片的缩略图,因为微信限制了图片的大小 bitmap thumbbmp = bitmap.createscaledbitmap(imageloaderutil.getbitmap(image), 200, 200, true); msg.setthumbimage(thumbbmp); thumbbmp.recycle(); sendmessagetowx.req req = new sendmessagetowx.req(); req.transaction = string.valueof(system.currenttimemillis()); // transaction字段用于唯一标识一个请求 req.message = msg; //好友 req.scene = sendmessagetowx.req.wxscenesession; // 调用api接口发送数据到微信 boolean result = api.sendreq(req); logutil.d(tag, result + ""); }
代码分析
根据业务需求加载网络图片,并且还是要同步加载,所以我使用了imageloader。
加载图片代码如下:
/** * 获取bitmap * @param imageurl * @return */ public static bitmap getbitmap(string imageurl) { displayimageoptions options = new displayimageoptions.builder() .cacheinmemory(true) .cacheondisk(true) .build(); return imageloader.getinstance().loadimagesync(imageurl, options); }
loadimagesync是同步加载方法,相应还有异步加载方法。
由于微信对分享图片的大小做了限制,所以我们还要创建缩略图,否则会报错(checkargs fail, thumbdata is invalid)
微信检查参数的源码如下
if(this.gettype() == 8 && (this.thumbdata == null || this.thumbdata.length == 0)) { log.e("micromsg.sdk.wxmediamessage", "checkargs fail, thumbdata should not be null when send emoji"); return false; } else if(this.thumbdata != null && this.thumbdata.length > '耀') { log.e("micromsg.sdk.wxmediamessage", "checkargs fail, thumbdata is invalid"); return false;
创建缩略图代码如下:
bitmap thumbbmp = bitmap.createscaledbitmap(imageloaderutil.getbitmap(image), 200, 200, true);
以上所述是小编给大家介绍的android实现微信分享带有缩略图的网页,希望对大家有所帮助