這可能是你見過最人性的友盟整合第三方分享
前言
第三方分享在日常開發中已經是見怪不怪了,為了方便快捷,大多數情況下我們都會使用第三方平臺提供的分享功能,來整合第三方分享,這裡我將帶大家使用友盟完成第三方分享,這可能是迄今為止最人性的教程,相信我,這比繁瑣的官網要簡單的多。如果你只是想練習一下demo而非實戰,我建議可以去友盟官網下載demo檢視學習。
整合順序及步驟
為了更加清晰明瞭,我會將教程分為三個整合環節
- 第三方開發者平臺申請
- 友盟申請
- 整合友盟分享
第三方開發者平臺申請
這一環節主要是申請各自分享平臺的 AppKey 或 AppId 及 AppSecret ,
這裡提供主流分享的三方開發者平臺,大家可以根據自己情況自行申請,當然我相信,現在大多數已經只分享 QQ 微信 微博了。其他平臺大家可自行搜尋,就讓我偷個小懶。

image
- 微信開放平臺 ofollow,noindex">https://open.weixin.qq.com/
- QQ開放平臺 https://connect.qq.com/index.html
- 新浪微博開放平臺 http://open.weibo.com/
友盟申請
登入到友盟官網, https://www.umeng.com/
建立友盟賬號,登入後建立新應用,得到新應用的AppKey,這裡需要注意的是,如果公司有安卓版和IOS版,需要申請兩個新應用,不同平臺的應用禁止使用相同的Appkey,如果在建立時提示應用名稱已存在,不用擔心,後臺的應用名與實際應用名和包名無關,也就是這裡隨便取都可以,建議命名為應用名+平臺(iOS/Android),這樣好區分嘛。
整合友盟分享
短短篇幅我們就來到文章最重要的地方,這裡我會非常詳細的介紹如何整合和分享,當然所有的前提是,你已經得到了需要分享的平臺的 AppKey 或 AppId 及 AppSecret 和友盟的 AppKey
第一步:整合jar包和新增相應的佈局檔案和圖片資源
在 https://developer.umeng.com/sdk 中,我們勾選 社會化分享 SDK

然後點選右邊的設定

在這裡我們勾選我們需要分享的平臺,這裡實戰演練為新浪,QQ,微信,這也是友盟預設為我們勾選的,關於完整版與精簡版,大家點選旁邊的問號就能檢視區別所在,這裡就不多闡述了。
確定後,我們點選下載,得到壓縮包,解壓後是這樣子的:

我們需要將common和share下的所有jar包複製出來(記住是所有的),thirdparties可以不用管,放到專案的libs下,如專案圖所示:

接下來將share下所有的xml檔案放到專案的layout包中,將所有圖片資源放到drawable包中,很重要哈,如果沒有新增,使用友盟預設的彈窗樣式和圖片就會報錯!!!
第二步:在註冊清單新增許可權及相應的程式碼
<!--友盟分享--> <!--新浪--> <activity android:name="com.umeng.socialize.media.WBShareCallBackActivity" android:configChanges="keyboardHidden|orientation" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:exported="false" > </activity> <activity android:name="com.sina.weibo.sdk.web.WeiboSdkWebActivity" android:configChanges="keyboardHidden|orientation" android:exported="false" android:windowSoftInputMode="adjustResize" > </activity> <activity android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" android:launchMode="singleTask" android:name="com.sina.weibo.sdk.share.WbShareTransActivity"> <intent-filter> <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <!--微信--> <activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <!--QQ--> <activity android:name="com.tencent.tauth.AuthActivity" android:launchMode="singleTask" android:noHistory="true" > <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> //例如appid為123456789,那這裡填寫tencent123456789 <data android:scheme="tencent填寫自己申請的appid" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="orientation|keyboardHidden|screenSize"/> <!--友盟分享end-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
第三步:初始化程式碼配置
在Application中,初始化
UMConfigure.init(this, "友盟的Appkey", "umeng", UMConfigure.DEVICE_TYPE_PHONE, ""); //微信 PlatformConfig.setWeixin("Appkey","AppSecret"); //新浪微博(第三個引數為回撥地址) PlatformConfig.setSinaWeibo("Appkey", "AppSecret","http://sns.whalecloud.com/sina2/callback"); //QQ PlatformConfig.setQQZone("AppId", "AppSecret");
第四步:在需要使用分享的地方重寫onActivityResult
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); }
第五步:分享程式碼
關於分享,我覺得在這裡闡述還是比較累贅,本文主要介紹整合過程,如果你已經到了這一步,那麼恭喜你,你只需要完成最後一步即可實現分享,關於分享直接在官網教程更加明白簡單。
https://developer.umeng.com/docs/66632/detail/66639#h2-u5206u4EAB12問題
整合完分享後,可能出現的問題,最簡單的方式:
//強烈建議大家在Application中開啟友盟日誌輸出,在出錯的地方會在日誌中提示並提供解決辦法 UMConfigure.setLogEnabled(true);
這裡提一個一般大家很容易出現的bug:
點選微信分享閃爍或閃退???
首先檢查你的app的簽名是否與開發者平臺上的簽名一致,如果一致,需要清理微信快取,怎麼清理呢?
進入手機設定-應用,找到微信,點選清理快取即可。清理完成後,再開啟app點選微信分享試一試。
如果你有其他問題,可以評論,我會在第一時間回覆。