首页 > 编程知识 正文

如何分享原给微信,从库分享给微信好友的是原吗

时间:2023-05-04 06:53:47 阅读:253555 作者:4377

    需求是这样的,点击按钮直接将不包含内容的纯图片分享给微信好友或者分享到朋友圈。

   通过查找友盟官网文档,发现只需要去除分享内容即shareContent的赋值就可以实现。


    我们可以在代码中发现,weixinContent.setShareImage(localImage);中的localImage的类型可以是String、int、byte[]、File、Bitmap。之前全部分享时,图片这儿用的是int和String类型,并且需要进行纯图片分享的图片都是后台动态返回的,所以用String是再好不过的,直接将图片url转成UMImage类型:

UMImage img = new UMImage(BigPicActivity.this, imageUrlStr);
 mController.setShareImage(img);

但是令人发指的事情发生了,竟然无法分享成功!这原本是不可能发生的。因为之前全分享(分享标题、链接、内容、图片)也用的String 类型的,没道理这儿不行。我试着写死分享的图片,发现可以分享成功!那么问题来了,这说明纯图片分享不能使用String类型的图片链接。

      虽然使用R.drawable.logo这样的int类型可以分享成功,但是无法实现分享后台动态返回的图片。我陷入了深深的沉思。。。那么UMImage()的构造方法需要的参数类型中,排除int/String后,能用的也就是Bitmap了,而imageView.getDrawableCache()返回一个Bitmap类型的图片缓存,应该是可以的吧?试试!还是不行!

事情到这里变得诡异起来。

到底是哪里出了问题?

试了很多次都不行,最后同事想到,把图片url转成Bitmap,死马当活马医。因为感觉跟之前的getDrawableCache()没什么大的区别。但是没想到竟然分享成功了!下面把代码贴出来:

URL url = new URL(imageUrl);

URLConnection conn = url.openConnection();

conn.connect();

InputStream in = conn.getInputStream();

Bitmap bm = BitmapFactory.decodeStream(in);

UMImage img = new UMImage(BigPicActivity.this, bm);
mController.setShareImage(img);

分享只写了微信好友的赋值,朋友圈这里就不写了。

------------我是可耻的分割线------2016-10-26更新----------------------------------------

在上线的晚上,测出一个bug,先分享一篇文章(全分享)到微信,然后分享一张纯图片到微信,会发现后者仍然分享的是之前的文章,而图片去哪儿了?

分享内容的赋值调用的是不同的方法,根本不可能发生这种情况,但是确实发生了,这必须是哪里出问题了!我瞬间想到,当时写纯图片分享的时候,为了省事,只给图片赋值,没有设置分享标题和分享目标url,没有严格按照官方文档来走。虽然觉得应该不是这儿,但是还是加上这两个方法重新测试,解决了!

说实话,到现在也不知道为什么分享标题和分享url的缺失会导致分享内容的覆盖,但有一点经验得记住,以后开发中,要严格按照文档来操作,不得马虎!

作为一个菜鸟,收获不少经验。最重要一点就是不要放弃尝试,在不影响项目进度的情况下一定要坚持自己研究。


此后如竟没有炬火,我便是唯一的光。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。