需求:
Android APP端 將公司的微信小程序 分享至微信好友
分析:
微信開放平臺SDK支持小程序類型分享,詳見官方文檔:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Share_and_Favorites/Android.html
a) 要求發起分享的App與小程序屬於同一微信開放平臺帳號;
b) 支持分享小程序類型消息至好友會話,不支持“分享至朋友圈” “收藏”;
c) 微信客戶端版本要求:6.5.6及以上微信客戶端版本,若客戶端版本低於6.5.6,小程序類型分享將自動轉成網頁類型分享。開發者必須填寫網頁鏈接字段,確保低版本客戶端能正常打開網頁鏈接;
d) 支持分享大圖卡片樣式,自定義圖片建議長寬比是 5:4。6.5.9及以上版本微信客戶端小程序類型分享使用大圖卡片樣式。
e)支持分享開發版/體驗版小程序,爲支持開發者調試,開發者工具包支持分享開發版/體驗版小程序至微信,開發者可控制分享的小程序版本。
開發:
IWXAPI msgApi = WXAPIFactory.createWXAPI(mContext, Constants.WX_APP_ID, true);
// 將該app註冊到微信
msgApi.registerApp(Constants.WX_APP_ID);//微信appid
WXMiniProgramObject miniProgramObj = new WXMiniProgramObject();
miniProgramObj.webpageUrl = mTargetUrl; // 兼容低版本的網頁鏈接
miniProgramObj.miniprogramType = WXMiniProgramObject.MINIPTOGRAM_TYPE_RELEASE;// 正式版:0,測試版:1,體驗版:2
miniProgramObj.userName = "小程序原始id"; // 小程序原始id
// miniProgramObj.path = "/pages/home/home"; //小程序頁面路徑
WXMediaMessage msg = new WXMediaMessage(miniProgramObj);
msg.title =mTitle; // 小程序消息title
msg.description = mSummary; // 小程序消息desc
Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(),R.mipmap.app_logo);
Bitmap sendBitmap = Bitmap.createScaledBitmap(bitmap,200,200,true);
bitmap.recycle();
msg.thumbData = HzqUtils.bmpToByteArray(sendBitmap);
SendMessageToWX.Req req = new SendMessageToWX.Req();
// req.transaction = buildTransaction("webpage");
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneSession; // 目前支持會話
bmpToByteArray工具類:
public static byte[] bmpToByteArray (Bitmap bitmap) {
// 要返回的字符串
byte[] reslut = null;
ByteArrayOutputStream baos = null;
try {
if (bitmap != null) {
baos = new ByteArrayOutputStream();
/**
* 壓縮只對保存有效果bitmap還是原來的大小
*/
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
baos.flush();
baos.close();
// 轉換爲字節數組
reslut= baos.toByteArray();
} else {
return null;
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (baos != null) {
baos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return reslut;
}
完畢!