android微信源生SDK分享问题
16lz
2021-01-23
android微信源生SDK分享问题
老生常谈了,不过还是记录一下这些坑比较合适!今天测试忽然发现,微信分享出去的条目,自身机子可以看到图片,而别人的手机上却发现缩略图没了,成为另一个链接黑图。这种问题自然是先考虑一下是否自身图片资源有啥问题,经过查看,图片并无毛病!因此只能另寻他法了。百度上很多答案大同小异,都说是图片太大(微信官方也指出:android分享图片不能大于32K),但是实际却是当图片大于32K,根本不能分享成功!因此这并不是我的问题原因!讲到这顺便附上分享图片时,对图片压缩处理的方法吧:
我们都知道微信源生分享的方法(带标题的链接)大致是这样的
//注意传入的数据不能大于10M,开发文档上写的 WXWebpageObject webpage = new WXWebpageObject(); webpage.webpageUrl = "url";//链接地址 WXMediaMessage msg = new WXMediaMessage(webpage); msg.title = "title";//标题 msg.description = "content";//内容、描述 //msg.mediaObject实际上是个IMediaObject对象, //它有很多实现类,每一种实现类对应一种发送的信息, //比如WXTextObject对应发送的信息是文字,想要发送文字直接传入WXTextObject对象就行 //官方文档介绍这个bitmap不能超过32kb,如果超过32kb则抛异常,分享失败 //如果一个像素是8bit的话换算成正方形的bitmap则边长不超过181像素,边长设置成150是比较保险的 //或者使用bmpToByteArray(thumbBitmap);省去自己转换二进制数据的过程 //在这设置缩略图 Bitmap thumb = BitmapFactory.decodeResource(m_Context.getResources(), R.drawable.icon); //方法一:bmpToByteArray(Bmp,needrecycle)方法控制图片质量--压缩率、分辨率// msg.thumbData = bmpToByteArray(thumb, true); //方法二:msg.setThumbImage(Bmp)方法控制图片实际尺寸--宽高 Bitmap thumbBmp = Bitmap.createScaledBitmap(thumb, 100, 100, false);//API方法,自己点进去看100,100就是设置图片宽高的 msg.setThumbImage(thumbBmp); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("webpage"); req.message = msg; req.scene = SendMessageToWX.Req.WXSceneSession; //设置发送给朋友// req.scene = SendMessageToWX.Req.WXSceneTimeline; //设置发送到朋友圈 msgApi.sendReq(req);public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) { ByteArrayOutputStream output = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.JPEG, 90, output);//CompressFormat.JPEG是图片格式,也可以选择CompressFormat.PNG; 90是压缩率 if (needRecycle) { bmp.recycle(); } byte[] result = output.toByteArray(); try { output.close(); } catch (Exception e) { e.printStackTrace(); } return result; }
好了,言归正传,再来说说分享以后为什么有的不能显示缩略图吧。。。原文在这!
经测试,发现title或者desc方案中不能携带“红包”或者“现金”等关键字!否则会被微信屏蔽!
更多相关文章
- android 方法数越界问题 65536/64k(方法数超过65535)
- Android Excel 解析 xls 和 xlsx,方法也可以很简单
- Android P (4)一种绕过Android P上非SDK接口限制的简单方法
- 一起写一个Android图片轮播控件
- Android OTA包重新签名的方法
- 【Android语音合成TTS】百度语音接入方法,和使用技巧详解
- Android中高效的显示图片之二——在非UI线程中处理图片
- 通过wifi连接android设备的方法