為什么標(biāo)題要說(shuō)都在隱藏副本里呢?
因?yàn)樵谀阕?cè)和使用的時(shí)候,沒(méi)有任何信息提示你正確的方式,下面的坑,我恰好全踩進(jìn)去了,刻苦銘心。
- 關(guān)于微信分享集成
當(dāng)你嚴(yán)格按照官方流程注冊(cè),配置到ShareSDK中,觸發(fā)分享無(wú)反應(yīng),好吧你一定覺(jué)得我是不是哪里疏漏了。
核查一遍:誒?都對(duì)著呢,沒(méi)有疏漏,try again 馬丹沒(méi)反應(yīng),也看不到一丁點(diǎn)日志信息,此時(shí)你一定和我一樣內(nèi)心幾乎是奔潰的。
不得不打開(kāi)度娘尋找希望的燈塔。
</br>
如果你已經(jīng)入坑,那下面的料幫你出坑。如果你正準(zhǔn)備入坑,那你讀完本篇也免于步我后塵。
第一坑-微信開(kāi)發(fā)者平臺(tái)注冊(cè)
在填寫(xiě)平臺(tái)信息的時(shí)候,需要我們填寫(xiě)apk相關(guān)信息。

重點(diǎn)時(shí)這個(gè)應(yīng)用簽名,debug簽名release簽名都行。但是這個(gè)簽名將被微信用于鑒別你的apk是否申請(qǐng)到分享權(quán)限。
也就是說(shuō),你這里輸入的簽名必須和你測(cè)試的apk簽名一致。
不管是jks,還是keystore,我們使用命令行查看簽名都會(huì)得到下面的簽名碼
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,因?yàn)槲以谟械奶由峡吹接腥速N的SHA1,親測(cè)SHA1是不行的。

如果你像上面一樣是直接粘貼上去的,恭喜你,你已經(jīng)掉進(jìn)了第一坑
** 秘籍 ① MD5碼 去冒號(hào) 且 全部小寫(xiě)**
在填寫(xiě)MD5碼時(shí),去掉冒號(hào),并且全部使用小寫(xiě)-別問(wèn)我怎么知道的,巨人無(wú)處不在。

審核通過(guò)后,你配置好appid和appsecret,連上數(shù)據(jù)線(xiàn)或者使用wifi直接運(yùn)行工程。你會(huì)發(fā)現(xiàn)還是不行,不要急。
</br>
秘籍② 測(cè)試必須使用注冊(cè)的簽名打包
上面我們提到,簽名用于微信檢查apk是否有分享權(quán)限。大部分同學(xué)run的都是debug簽名,如果你需要測(cè)試微信分享,就必須Generate signed APK,使用提供上面MD5的簽名文件進(jìn)行打包。
每次測(cè)試都要打包,不累死也浪費(fèi)大把時(shí)間
你可以在module目錄下的build.gradle文件中添加如下配置,這樣debug和release的簽名就一至了,不需要打包,就可以測(cè)試,將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
}
}
}
第二坑-調(diào)用微信分享
我沒(méi)有使用ShareSDK的分享UI,直接使用的分享內(nèi)容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
就是 標(biāo)題,內(nèi)容個(gè),連接,和icon,缺一不可
如果上面都沒(méi)問(wèn)題,那幾本上微信分享就搞定了。
額外補(bǔ)充一點(diǎn),Text字段。
秘籍 ②
Text字段,在分享到微信時(shí)有長(zhǎng)度限制。最大不能超過(guò)64字節(jié)。如果超過(guò)則無(wú)反應(yīng),拉不起來(lái),你依然別想看到任何log-別問(wèn)我怎么知道的-----。
另外看到有的博客上說(shuō),在微信平臺(tái)注冊(cè)時(shí)填寫(xiě)的AppName必須和打包apk上的名字一樣,經(jīng)我親測(cè)發(fā)現(xiàn)并無(wú)此要求,可以隨意寫(xiě),平臺(tái)上的名字應(yīng)該僅用于查看。
這是我自己踩過(guò)坑以后的總結(jié),也希望能幫助到坑里的你。