/**
* @param iwxapi 微信Api
* @param url 分享的url
* @param title 标题
* @param description 描述
* @param bitmap 图片
* @param friendsCircle true是分享朋友圈 false是分享好友
*/
public static void share(IWXAPI iwxapi, String url, String title, String description, Bitmap bitmap, boolean friendsCircle) {
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = url;//分享url
WXMediaMessage msg = new WXMediaMessage(webpage);
try {
msg.title = URLDecoder.decode(title, "utf-8");//title标题
msg.description = URLDecoder.decode(description, "utf-8");//content内容
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if (bitmap != null) {
msg.thumbData = getThumbData(bitmap);//封面图片byte数组
}
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = String.valueOf(System.currentTimeMillis());
req.message = msg;
req.scene = friendsCircle ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
iwxapi.sendReq(req);
}
/**
* 获取分享封面byte数组
*
* @return
*/
private static byte[] getThumbData(Bitmap bitmap) {
ByteArrayOutputStream optiont = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, optiont);
int options = 100;
while (optiont.toByteArray().length > 32 && options != 10) {
optiont.reset(); // 清空baos
bitmap.compress(Bitmap.CompressFormat.JPEG, options, optiont);// 这里压缩options%,把压缩后的数据存放到baos中
options -= 10;
}
return optiont.toByteArray();
}
/**
* 判断是否安装了微信App
*
* @return
*/
private boolean isWXAppInstalledAndSupported() {
IWXAPI msgApi = WXAPIFactory.createWXAPI(this, null);
msgApi.registerApp(Constants.WX_APP_ID);
boolean sIsWXAppInstalledAndSupported = msgApi.isWXAppInstalled()
&& msgApi.isWXAppSupportAPI();
return sIsWXAppInstalledAndSupported;
}