为什么标题要说都在隐藏副本里呢?
因为在你注册和使用的时候,没有任何信息提示你正确的方式,下面的坑,我恰好全踩进去了,刻苦铭心。
- 关于微信分享集成
当你严格按照官方流程注册,配置到ShareSDK中,触发分享无反应,好吧你一定觉得我是不是哪里疏漏了。
核查一遍:诶?都对着呢,没有疏漏,try again 马丹没反应,也看不到一丁点日志信息,此时你一定和我一样内心几乎是奔溃的。
不得不打开度娘寻找希望的灯塔。
</br>
如果你已经入坑,那下面的料帮你出坑。如果你正准备入坑,那你读完本篇也免于步我后尘。
第一坑-微信开发者平台注册
在填写平台信息的时候,需要我们填写apk相关信息。
重点时这个应用签名,debug签名release签名都行。但是这个签名将被微信用于鉴别你的apk是否申请到分享权限。
也就是说,你这里输入的签名必须和你测试的apk签名一致。
不管是jks,还是keystore,我们使用命令行查看签名都会得到下面的签名码
MD5: 34:F2:H8:38:DC:A4:45:EB:23:D4:E7:F2:3C:11:22:8D
SHA1: 21:A1:64:4A:78:33:6E:91:22:44:67:CC:3E:65:21:89:AE:89:BF:ED
SHA256: AE:6F:32:CC***
此处,我们只用MD5,因为我在有的帖子上看到有人贴的SHA1,亲测SHA1是不行的。
如果你像上面一样是直接粘贴上去的,恭喜你,你已经掉进了第一坑
** 秘籍 ① MD5码 去冒号 且 全部小写**
在填写MD5码时,去掉冒号,并且全部使用小写-别问我怎么知道的,巨人无处不在。
审核通过后,你配置好appid和appsecret,连上数据线或者使用wifi直接运行工程。你会发现还是不行,不要急。
</br>
秘籍② 测试必须使用注册的签名打包
上面我们提到,签名用于微信检查apk是否有分享权限。大部分同学run的都是debug签名,如果你需要测试微信分享,就必须Generate signed APK,使用提供上面MD5的签名文件进行打包。
每次测试都要打包,不累死也浪费大把时间
你可以在module目录下的build.gradle文件中添加如下配置,这样debug和release的签名就一至了,不需要打包,就可以测试,将jks或者keystore文件放到module根目录下。
android {
//配置签名文件
signingConfigs {
release {
keyAlias 'release'
keyPassword 'android'
storeFile file('keystore.jks')
storePassword 'android'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.release
}
debug {
signingConfig signingConfigs.release
}
}
}
第二坑-调用微信分享
我没有使用ShareSDK的分享UI,直接使用的分享内容API
ShareParams wechat = new ShareParams();
wechat.setShareType(Platform.SHARE_WEBPAGE);
wechat.setTitle("" + myfastbean.getTitle());
wechat.setText("" + myfastbean.getSnapDes());
wechat.setImageUrl("" + myfastbean.getPicture());
wechat.setUrl("" + myfastbean.getLink());
Platform weixin = ShareSDK.getPlatform(Wechat.NAME);
weixin.setPlatformActionListener(shareListenner);
weixin.share(wechat);
** 秘籍 ① 使用Platform.SHARE_WEBPAGE必须字段**
Title、Text、Url、ImageUrl
就是 标题,内容个,连接,和icon,缺一不可
如果上面都没问题,那几本上微信分享就搞定了。
额外补充一点,Text字段。
秘籍 ②
Text字段,在分享到微信时有长度限制。最大不能超过64字节。如果超过则无反应,拉不起来,你依然别想看到任何log-别问我怎么知道的-----。
另外看到有的博客上说,在微信平台注册时填写的AppName必须和打包apk上的名字一样,经我亲测发现并无此要求,可以随意写,平台上的名字应该仅用于查看。
这是我自己踩过坑以后的总结,也希望能帮助到坑里的你。