如今,社会化分享成了App必不可少的一个功能,而其中最重要的莫过于微信分享,由于微信庞大的用户群及活跃度,因此我们的App往往都需要集成微信分享,微信开放平台也提供了相应的分享SDK。鉴于看到很多人说调不起微信分享,下面就来分享下自己的经验以及在集成微信分享过程中需要注意的地方,最终会提供自己封装好的微信分享源码示例。
其实集成的步骤在微信开放平台的文档指南中已经写的很清楚了:
1.申请AppID。这一步需要在微信开放平台注册你的App就可以了,注意的是需要使用正式的keystore签名你的App,如果最终发布的App的签名keystore跟你此时注册使用的keystore不同,那么最终你将调不起微信分享。
2.下载SDK。主要是下载libmmsdk.jar。
3.将libmmsdk.jar导入到你的工程里,具体步骤大家应该都很熟悉了,然在AndroidManifest.xml里添加相关权限,如网络权限等。
4.在你的界面中调用分享函数,启用微信分享。这里我写了一个WXShare单例类,将所有的微信分享种类都封装到该类里面,你只需要在合适的位置调用合适的方法并传入合适的参数即可,不需要在每一处分享时写重复的代码。
以上详细步骤可以参考官方文档。
还有三点需要注意,否则也可能分享失败:
其一是图片分享时,要求图片的大小在32K以下(经测试,等于32K也是不可以的),因此在分享图片时,需要注意图片的大小,当然我在封装时已经在对图片做了压缩,你可以不必关心,但需要知道。
其二是如果你的App需要代码混淆,则需要在proguard.cfg中为分享SDK添加一些配置,否则调用微信分享会无响应,具体如下:
-keep class com.tencent.mm.sdk.openapi.WXMediaMessage {*;}
-keep class com.tencent.mm.sdk.openapi.** implements com.tencent.mm.sdk.openapi.WXMediaMessage$IMediaObject {*;}
其三,在测试微信分享时需要注意,平时我们往往数据线连接手机,将App直接装到手机上,这样是调不起微信分享的,因为此时是默认的keystore,需要使用当初申请AppID时的keystore对App签名,之后才可以成功调用微信分享。每次测试微信分享时需要正式签名确实麻烦,为此使用自己电脑上默认的keystore另外申请了一个测试AppID,就可以直接将App装到手机上测试了,而不必再正式签名(当然别人也用不了你的测试AppID,除非你把自己电脑上默认的keystore给他们),这种方法大家可以参考。
把握住以上几点,应该不会有什么问题了,你就可以在自己的App上成功调用微信分享了,包括分享文本、图片、网页等基本功能,如果涉及到一些高级分享功能,如好友点击自己分享的内容再跳转回你的App,这些在我之前的一篇文章中讨论过,请参考Android平台好友点击微信分享的内容后跳转来源App的实现方案研究。
下面就是干货了,源码示例WeChatShare,欢迎Star或Fork。你可以把代码clone下来,甚至可以把其中的包直接拷到自己的工程中,或者修改为你自己的包名(这里有一点注意,如你的包名为com.xxx.yyy,则WXEntryActivity.java所在的包名必须为com.xxx.yyy.wxapi),并在WXShare.java文件里加入你申请的APP_ID,就可以调用微信分享功能了,具体调用详见代码示例,如果仍然有问题的,可以留言讨论。
原文地址:http://blog.csdn.net/ahence/article/details/44177695