微信開放平台上的例子只有單獨分享一張圖片或者是單獨分享一段文字。最近要做這個功能,就搜索了一下是否有這方面的文章。可能博主搜索能力有限,沒找到。最后只好反編譯了一個擁有這個功能的應用,得到了這部分代碼,拿出來分享一下:
public void sendReq(Context context, String text, Bitmap bmp) { String url = "http://www.ABC.net";//收到分享的好友點擊信息會跳轉到這個地址去 WXWebpageObject localWXWebpageObject = new WXWebpageObject(); localWXWebpageObject.webpageUrl = url; WXMediaMessage localWXMediaMessage = new WXMediaMessage( localWXWebpageObject); localWXMediaMessage.title = "我的應用";//不能太長,否則微信會提示出錯。不過博主沒驗證過具體能輸入多長。 localWXMediaMessage.description = text; localWXMediaMessage.thumbData = getBitmapBytes(bmp, false); SendMessageToWX.Req localReq = new SendMessageToWX.Req(); localReq.transaction = System.currentTimeMillis() + ""; localReq.message = localWXMediaMessage; IWXAPI api = WXAPIFactory.createWXAPI(context, APP_ID, true); api.sendReq(localReq); } // 需要對圖片進行處理,否則微信會在log中輸出thumbData檢查錯誤 private static byte[] getBitmapBytes(Bitmap bitmap, boolean paramBoolean) { Bitmap localBitmap = Bitmap.createBitmap(80, 80, Bitmap.Config.RGB_565); Canvas localCanvas = new Canvas(localBitmap); int i; int j; if (bitmap.getHeight() > bitmap.getWidth()) { i = bitmap.getWidth(); j = bitmap.getWidth(); } else { i = bitmap.getHeight(); j = bitmap.getHeight(); } while (true) { localCanvas.drawBitmap(bitmap, new Rect(0, 0, i, j), new Rect(0, 0, 80, 80), null); if (paramBoolean) bitmap.recycle(); ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream(); localBitmap.compress(Bitmap.CompressFormat.JPEG, 100, localByteArrayOutputStream); localBitmap.recycle(); byte[] arrayOfByte = localByteArrayOutputStream.toByteArray(); try { localByteArrayOutputStream.close(); return arrayOfByte; } catch (Exception e) { F.out(e); } i = bitmap.getHeight(); j = bitmap.getHeight(); } }
其實就是分享一張網頁,同時提供該頁面的縮略圖、描述等信息啦。剛好可以拿來做同時分享圖片和文字內容。其它部分代碼就跟微信開放平台上提供的例子一樣了。希望對需要的朋友有點幫助。