友盟分享纯图片到微信
需求是這樣的,點擊按鈕直接將不包含內容的純圖片分享給微信好友或者分享到朋友圈。
? ?通過查找友盟官網(wǎng)文檔,發(fā)現(xiàn)只需要去除分享內容即shareContent的賦值就可以實現(xiàn)。
?
?
? ? 我們可以在代碼中發(fā)現(xiàn),weixinContent.setShareImage(localImage);中的localImage的類型可以是String、int、byte[]、File、Bitmap。之前全部分享時,圖片這兒用的是int和String類型,并且需要進行純圖片分享的圖片都是后臺動態(tài)返回的,所以用String是再好不過的,直接將圖片url轉成UMImage類型:
UMImage img = new UMImage(BigPicActivity.this, imageUrlStr);
?mController.setShareImage(img);
但是令人發(fā)指的事情發(fā)生了,竟然無法分享成功!這原本是不可能發(fā)生的。因為之前全分享(分享標題、鏈接、內容、圖片)也用的String 類型的,沒道理這兒不行。我試著寫死分享的圖片,發(fā)現(xiàn)可以分享成功!那么問題來了,這說明純圖片分享不能使用String類型的圖片鏈接。
? ? ? 雖然使用R.drawable.logo這樣的int類型可以分享成功,但是無法實現(xiàn)分享后臺動態(tài)返回的圖片。我陷入了深深的沉思。。。那么UMImage()的構造方法需要的參數(shù)類型中,排除int/String后,能用的也就是Bitmap了,而imageView.getDrawableCache()返回一個Bitmap類型的圖片緩存,應該是可以的吧?試試!還是不行!
事情到這里變得詭異起來。
到底是哪里出了問題?
試了很多次都不行,最后同事想到,把圖片url轉成Bitmap,死馬當活馬醫(yī)。因為感覺跟之前的getDrawableCache()沒什么大的區(qū)別。但是沒想到竟然分享成功了!下面把代碼貼出來:
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,先分享一篇文章(全分享)到微信,然后分享一張純圖片到微信,會發(fā)現(xiàn)后者仍然分享的是之前的文章,而圖片去哪兒了?
分享內容的賦值調用的是不同的方法,根本不可能發(fā)生這種情況,但是確實發(fā)生了,這必須是哪里出問題了!我瞬間想到,當時寫純圖片分享的時候,為了省事,只給圖片賦值,沒有設置分享標題和分享目標url,沒有嚴格按照官方文檔來走。雖然覺得應該不是這兒,但是還是加上這兩個方法重新測試,解決了!
說實話,到現(xiàn)在也不知道為什么分享標題和分享url的缺失會導致分享內容的覆蓋,但有一點經(jīng)驗得記住,以后開發(fā)中,要嚴格按照文檔來操作,不得馬虎!
作為一個菜鳥,收獲不少經(jīng)驗。最重要一點就是不要放棄嘗試,在不影響項目進度的情況下一定要堅持自己研究。
?
此后如竟沒有炬火,我便是唯一的光。
總結
以上是生活随笔為你收集整理的友盟分享纯图片到微信的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python--循环列表中字典元素
- 下一篇: A1078. 逆序对个数