一、接入前操作

博主昨天接入微信分享遇到了一个大坑和一些小问题,今天跟大家分享一下这些问题和处理办法。

接入前需要注册微信开放平台:https://open.weixin.qq.com/

添加依赖等操作看这里:

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417751808&token=7bc53b063369e012229fe72e75deed066003afea&lang=zh_CN

做完上面的操作就可以开始写接入代码了。

二、分享代码接入

1.在application类中注册应用:

private IWXAPI wxApi;
//注册微信
wxApi = WxApiUtils.regToWx(getApplicationContext());
public static IWXAPI regToWx(Context context){IWXAPI iwxapi = WXAPIFactory.createWXAPI(context,APP_ID,true);iwxapi.registerApp(APP_ID);return iwxapi;}

注:APP_ID填你自己应用的APP_ID,在微信开放平台添加上你的应用后会有。

建议:调用微信接口的方法写成一个工具类,博主的微信接口调用都写在 WxApiUtils类中。

2.分享图片到微信聊天窗口或朋友圈

public static boolean sharePic(Context context,int shareType,int resourceId){Bitmap bmp = BitmapFactory.decodeResource(context.getResources(),resourceId);WXImageObject imgObj = new WXImageObject(bmp);WXMediaMessage mediaMsg = new WXMediaMessage();mediaMsg.mediaObject = imgObj;//设置缩略图Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp,50,50,true);bmp.recycle();mediaMsg.thumbData = ImageUtils.bmpToByteArray(thumbBmp,true);//构造一个reqSendMessageToWX.Req req = new SendMessageToWX.Req();req.transaction = "img"+String.valueOf(System.currentTimeMillis());req.message = mediaMsg;switch (shareType){case SHARE_TYPE_SESSION:req.scene = SendMessageToWX.Req.WXSceneSession;break;case SHARE_TYPE_TIME_LINE:req.scene = SendMessageToWX.Req.WXSceneTimeline;break;}return ShuShanApplication.getInstance().getWxApi().sendReq(req);}

参数介绍:

shareType:分享的类型,0分享到聊天窗口,1分享到朋友圈

resourceId:分享的图片资源id(注:后面会提供一个重载方法,用Bitmap替代resourceId,方便上传网络图片)

重载方法:

public static boolean sharePic(Context context,int shareType,Bitmap bmp){WXImageObject imgObj = new WXImageObject(bmp);WXMediaMessage mediaMsg = new WXMediaMessage();mediaMsg.mediaObject = imgObj;//设置缩略图Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp,50,50,true);bmp.recycle();mediaMsg.thumbData = ImageUtils.bmpToByteArray(thumbBmp,true);//构造一个reqSendMessageToWX.Req req = new SendMessageToWX.Req();req.transaction = "img"+String.valueOf(System.currentTimeMillis());req.message = mediaMsg;switch (shareType){case SHARE_TYPE_SESSION:req.scene = SendMessageToWX.Req.WXSceneSession;break;case SHARE_TYPE_TIME_LINE:req.scene = SendMessageToWX.Req.WXSceneTimeline;break;}return ShuShanApplication.getInstance().getWxApi().sendReq(req);}

这里有几个小问题:

1.bmpToByteArray()方法微信的例子里没有提供出来!!他只写了个Util.bmpToByteArray()就没有然后了!!而且Util这个类没有添加到依赖的微信包里,呵呵,仿佛在逗我笑,你是让我猜这个方法写的啥吗??当然,之后百度到了:

/*** 将bmp转换为字节数组* @param bmp* @param needRecycle* @return*/public static byte[] bmpToByteArray(final Bitmap bmp, boolean needRecycle) {ByteArrayOutputStream output = new ByteArrayOutputStream();bmp.compress(Bitmap.CompressFormat.PNG, 100, output);if (needRecycle) {bmp.recycle();}byte[] result = output.toByteArray();try {output.close();} catch (Exception e) {e.printStackTrace();}return result;}

2."img"+String.valueOf(System.currentTimeMillis());

这里微信的例子里写的是:buildTransaction("img");然后也是没有任何介绍,我只想说这个接入文档写的真是太“详细”了,接入起来很“省心”呢!!

3.测试

大坑就是在测试这里了。

坑:点击分享一闪而过,分享到对话框和朋友圈都是这样。

网上查了很多方法,打包APK出来测试啊,什么什么的啊,都没有作用,浪费了几个小时时间。

之后发现原因:卸载安装一次APP,签名会改变。(会与之前在开放平台创建APP时填入的签名不同)

解决方法:

使用开放平台提供的签名工具:

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&token=7bc53b063369e012229fe72e75deed066003afea&lang=zh_CN

翻到最底下有个“签名生成工具”,点击它就可以下载。

安装好之后run你的应用,跑起来之后打开签名生成工具,输入APP的包名就可以生成签名,把这个签名覆盖掉之前在开放平台设置的签名,然后再测试分享功能,成功!

4.结语

微信开放平台的开发文档真的太坑人,不够详细,还好你们翻到了我这篇博客。

解决了给个赞吧!

有问题请留言,博主会尽快回复!

另,附上博主自己的淘宝客项目下载码(可查淘宝商品优惠券,使用优惠券购物后可加微信客服返现,返现额度全网最高,客服微信android_jesse):

博主上传资源下载链接:

自制免费无广告小说阅读APP下载:

https://download.csdn.net/download/yonghuming_jesse/10390364

全屏播放视频不拉伸源码:

https://download.csdn.net/download/yonghuming_jesse/10646274

科大讯飞语音评测服务接入源码:

https://download.csdn.net/download/yonghuming_jesse/10616924

android饺子播放器使用源码:

https://download.csdn.net/download/yonghuming_jesse/10619119

视频播放前显示视频第一帧源码:

https://download.csdn.net/download/yonghuming_jesse/10646332

androidAPP接入微信分享【最新】相关推荐

  1. 接入微信分享 以及使用eclipse调试cocos2dx

    参考文章:http://www.zaojiahua.com/eagled-the-letter-to-share.html 以下是文章内容: 本次的游戏代码是使用lua完成,所以接入第三方的SDK也和 ...

  2. 接入微信分享过程的喜和泪

    背景故事: 4月份从公司回到学校.要開始着手做大四的毕业设计.然而毕设的当中一个功能模块便是--心情分享模块,在记录心情的同一时候能够把心情分享到朋友圈.空间.微博等.因此,便開始了微信分享的学习之旅 ...

  3. 关于android接入微信分享(以及app签名 the apk for your currently selected variant(app-release)

    接入微信分享 在微信开放平台按需接入即可. 查看app签名 微信开放平台里资源下载,下载查看app签名工具:Gen_Signature_Android2.apk the apk for your cu ...

  4. Android接入微信分享视频和图片

    从14年10未毕业开始工作到现在,忍不住想写点东西,就从最近的用的东西写起吧. 首先是分享-微信分享 微信分享 首先要去微信的开发者平台去申请账号,这边注意申请的时候要填写签名的那个Md5值,然后获取 ...

  5. Android开发知识(十一):让你的应用接入微信分享,完美绕过微信分享的大坑

    文章目录 一.申请应用 二.配置微信分享的SDK 三.微信分享示例 四.微信分享的结果回调 五.微信分享的踩坑总结 一.申请应用 1.首先到 [ 微信开放平台官网] 申请注册帐号,这些流程就忽略了到官 ...

  6. PHP-TP微信公众号接入微信分享-Poison

    微信分享其实是最好接入的 首先下载微信分享的sdk,放入Library中 建议放到Vendor中 我比较懒就放到这一块了  别向我学习 这时候就需要去代码中实现了 //---------------- ...

  7. Android应用接入微信分享,以及遇到的坑

    本文转载自lc_miao的博客:https://blog.csdn.net/lc_miao/article/details/79855687 目录 一.申请应用 二.配置微信分享的SDK 三.微信分享 ...

  8. androidAPP 接入微信/支付宝支付,获取应用的签名(随笔)

    一.问题: app在开发过程中,接入到支付功能,常见的支付供应商就是微信/支付宝了,在官网注册时就需要一串签名: 二.解决办法:这个需要下载获取签名的工具即可: 下载签名工具 三.具体步骤: 1..安 ...

  9. 接入微信分享接口步骤

    一.申请公众号 获取开发者ID(AppID)和开发者密码(AppSecret) 通过AppID和AppSecret获得access_token 二.认证 1.营业执照 2.组织机构代码证 获得高级接口 ...

最新文章

  1. 三种求全排列方式之比较
  2. 用WPS表格轻松设计工资条
  3. IDEA MAVEN Project 显示问题
  4. 微型计算机在温室管理中的应用初探,文献综述-测控051-陈杰.doc
  5. 认识伪类元素:before和:after
  6. 模切ERP和免费OA系统是互相结合提高效率
  7. Ubuntu14.04 VSCode工程在root下无运行,在非root无法修改配置文件
  8. ubuntu mysql开发环境_Ubuntu + Nginx/PHP/MYSQL开发环境配置图文教程
  9. mybatis源码学习(二):SQL的执行过程
  10. 首张牌照花落“东方购物” 或抬高电视购物门槛
  11. 初始单片机 ----自学笔记
  12. asps英文_汽车术语中英文对照
  13. 能提升自己能力的几个经典项目
  14. amlogic logo amlogic rk tvbox 电视盒 定制化开发(一) 开机logo 定制
  15. 第12章 从美国次贷危机中学到什么
  16. 计算机芯片制造原理,从沙粒到芯片,原来CPU制造工序过程是这样的(视频)
  17. squid代理介绍----传统代理
  18. SQL查询表中某列字段相同的重复数据
  19. 20191019 前端日报
  20. java编译字节码转化程序下载_编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )...

热门文章

  1. mac m1 m2 深度学习环境(pytorch)配置
  2. 一个java程序员的真实经历
  3. 自然语言处理——中英文分词
  4. 数据结构代码尾插法建立单链表
  5. 输电线路综合在线监测装置
  6. 大学学期初计算机计划,大学学期目标计划
  7. H3C无线开局简单指导
  8. 通过graph-tool学习BGL
  9. STM32+EMWIN电子日历
  10. 《定时执行专家》更新日志 - [TimingExecutor] Full Change Log