常用微信集成(第三方sdk集成套路)-- 微信分享
来源:互联网 发布:网络品牌营销现状 编辑:程序博客网 时间:2024/06/06 18:58
分享
上一章我们讲到了微信登陆的集成,现在我们来看一下微信分享。
微信分享,同样遵循集成的基本流程,那就是:
包装请求(req)--> 发送请求 --> 处理请求
这个在上一章已经提到过。因为微信分享的特性,我们可以将流程进一步的精简为:
生成请求(req) --> 处理请求
我们看一下集成方法:
(1). 生成请求
在我们本地搜集好要做分享的数据后,就需要将本地数据封装成微信分享可识别的请求数据,随后通过微信建立分享链接,跳转至微信客户端进行后续步骤:
/** 标准分享 */ public static void wechatShareNormal(final Activity context, final int flag, final String title, final String description, final String url, final String thumb) { new Thread(new Runnable() { @Override public void run() { Bitmap bmp = ImgFromNetAssistant.getUploadImage(thumb); WXWebpageObject webpage = new WXWebpageObject(url); WXMediaMessage msg = new WXMediaMessage(); msg.title = title; msg.description = description; msg.setThumbImage(bmp); msg.mediaObject = webpage; // 构造微信请求 final SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = String.valueOf(System.currentTimeMillis()); req.message = msg; req.scene = flag; // 调用API接口发送到微信 final IWXAPI wxApi = WXAPIFactory.createWXAPI(context, FirstPageConstants.WX.APP_ID); wxApi.registerApp(FirstPageConstants.WX.APP_ID); int scale = 10; while (!wxApi.sendReq(req) && scale > 0 && bmp != null) { scale -= 1; bmp = Bitmap.createScaledBitmap(bmp, bmp.getWidth() * scale / 10, bmp.getHeight() * scale / 10, true); msg.setThumbImage(bmp); } if(bmp != null) bmp.recycle(); } }).start(); }
因为微信分享对图片的大小有严格的限定,所以在进行数据封装的过程中,我们需要对分享用的图片大小进行检测,不合格的进行压缩。这是一个耗时的过程,需要在线程里进行。
当请求发送后,我们就需要等待微信处理结果,待返回我们App时,再进行相应的处理即可。
(2). 分享返回处理
分享结果的接受页面,同样是WXEntryActivity的onResp方法。具体的原理上一章有描述,这里就不在多说了。同样的,微信分享返回结果也是由3个状态码标识的,分别是:
BaseResp.ErrCode.ERR_OK 标识 "分享成功"BaseResp.ErrCode.ERR_USER_CANCEL 标识 "分享取消"BaseResp.ErrCode.ERR_USER_CANCEL 标识 "分享失败"
根据三种状态码分别做App相应的业务逻辑处理就好啦,我的demo这里是简单地弹窗提醒了:
/** 处理微信分享响应 */ private void handleShareResponse(BaseResp resp) { switch (resp.errCode) { case BaseResp.ErrCode.ERR_OK: UIUtils.showToastSafe("分享成功"); break; case BaseResp.ErrCode.ERR_USER_CANCEL: UIUtils.showToastSafe("分享取消"); break; case BaseResp.ErrCode.ERR_AUTH_DENIED: UIUtils.showToastSafe("分享失败"); break; } ((Activity) context).finish(); }
不难看出,分享的流程要比登录简单多了。但是具体的集成流程的3各节点,却是一个都不少的。
0 0
- 常用微信集成(第三方sdk集成套路)-- 微信分享
- 常用微信集成(第三方sdk集成套路)-- 微信登录
- 常用微信集成(第三方sdk集成套路)-- 微信支付
- 集成微信的第三方分享
- 第三方集成微信登录、分享等功能的sdk
- iOS集成QQ、微信、微博、短信、邮件分享(非第三方集成)
- iOS集成QQ、微信、微博、短信、邮件分享(非第三方集成)
- iOS集成QQ、微信、微博、短信、邮件分享(非第三方集成)
- 集成友盟第三方登录(qq、微信、微信朋友圈、新浪)、分享
- 集成微信第三方登陆
- 微信第三方登录集成
- iOS 集成 第三方 微信
- 微信第三方登录集成
- Android 集成微信第三方登陆
- 最详细Android集成QQ,微信,微博分享(不用第三方)
- Android使用官方API分享内容到QQ和微信(非第三方集成)
- Android 微信,QQ,新浪三方登录及分享官方SDK集成
- 不集成QQ、微信分享官方SDK 分享方法
- spring学习笔记(16)趣谈spring 事件机制[2]:多监听器流水线式顺序处理
- 针对IE6兼容png
- java GC机制
- 第九章 IP选项处理(我再去看IP选项的那些基础概念再来看)
- 理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
- 常用微信集成(第三方sdk集成套路)-- 微信分享
- 2016-09-01新的一天,继续加油努力!
- 暗通道优先的图像去雾算法(上)
- 理解AngularJs的$apply()和$digest()
- Shell学习笔记
- Android build system & Android.mk 规范
- 公司内部 action调用持久层规范
- Verilog中阻塞与非阻塞语句
- 【三星官方教程】如何为Gear VR开发应用(六):加入渐变效果