需求:
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; // 目前支持会话
msgApi.sendReq(req);
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;
}
完毕!