微信的分享做的真的特别好,类型多样,数据互通性特别强。尤其最近又增加了新的小程序的分享类型,使得APP数据与小程序数据互通,形成了一个相互作用的闭环,这篇为集成微信分享的工作记录。
微信分享的6种类型
1.文字类型分享
2.图片类型分享
3.音乐类型分享
4.视频类型分享
5.网页类型分享
6.小程序类型分享
** 分享或收藏的目标场景,通过修改scene场景值实现。
发送到聊天界面——WXSceneSession
发送到朋友圈——WXSceneTimeline
添加到微信收藏——WXSceneFavorite **
ok,先看看我分享出来的样式吧
如何分享?
1.将sdk放入工程中
2.注册微信API
3.按照项目需求,分享不同类型
文字分享类型代码
//初始化一个WXTextObject对象,填写分享的文本内容
WXTextObject textObject = new WXTextObject();
textObject.text = shareEntity.shareTitle;
//初始化WXMediaMessage对象
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = textObject;
msg.description = shareEntity.shareTitle;
//构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("text");
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneSession;
api.sendReq(req);
图片分享类型代码
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.mipmap.share_image);
//初始化WXImageObject和WXMediaMessage对象
WXImageObject imageObject = new WXImageObject(bmp);
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = imageObject;
//设置缩略图
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R
.mipmap.share_image);
msg.thumbData = comBitmapOption(thumb);
//构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("img");
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneSession;
api.sendReq(req);
小程序分享类型代码
要求发起分享的App与小程序属于同一微信开放平台帐号。
目前仅支持分享小程序类型消息至会话。
若客户端版本低于6.5.6,小程序类型分享将自动转成网页类型分享。开发者必须填写网页链接字段,确保低版本客户端能正常打开网页链接。
小程序的原始ID获取方法:登录小程序后台-设置-基本设置-帐号信息
WXMiniProgramObject miniProgram = new WXMiniProgramObject();
miniProgram.webpageUrl ="http://www.xiaohongchun.com.cn";
miniProgram.userName = "【小程序ID】";
miniProgram.path = "pages/indexApp/indexApp";
WXMediaMessage msg = new WXMediaMessage(miniProgram);
msg.title = "小程序标题";
msg.description = "小程序描述";
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R
.mipmap.ic_launcher);
msg.thumbData = comBitmapOption(thumb);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("miniProgram");
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneSession;
api.sendReq(req);
剩下的分享类型参考完整代码吧 https://github.com/kevinTutu/WXShare.git