## Android應用開發-小巫CSDN博客客戶端之集成友盟社會化分享組件
上一篇博客給大家介紹了如何分析網頁并且使用jsoup這個庫對html代碼進行解析,本篇博客繼續給大家介紹如何集成友盟社會化組件,如何使用SDK提供的API輕松實現多平臺的社會化分享,官網的文檔和Demo看起來很頭疼的有木有,小巫在集成這個社會化的組件也有點煩躁,所以也需要各位耐心看下面的博文把友盟社會化組件集成到你的應用中去。為什么要選擇友盟呢,這里也是答應了小喵的,要幫忙集成他們的服務,所以也順帶幫他們寫一篇這樣的博文,千萬不要感動啊。
先來介紹一下:友盟社會化組件的產品特點:
主流OS
iOS、Android、Windows Phone、PhoneGap
游戲引擎
Cocos2d-x、Unity
主流社交平臺
微信、QQ、新浪微博、騰訊微博、來往、易信、人人網、豆瓣,Facebook、Twitter、 Instagram、Google+、短信、郵件
- 集成4個社交模塊(登錄-分享-評論-Like),可分別調用,靈活定制;
- 授權登錄的同時,可勾選關注官方微博;
- 分享:支持圖片、文字、gif動圖、音頻、視頻;
- 登錄:支持新浪微博SSO,后續支持更多平臺SSO;
- 支持@好友、地理位置簽到、表情;
- 新鮮事文本支持@APP官方微博;
- 支持橫屏、豎屏、HD版;
友盟社會化行為分析
針對自建社交模塊的移動應用提供的社會化統計分析SDK,可實時了解SNS、用戶、信息流、轉化率、傳播效應等數據。
提供四個維度:?概況、用戶、行為、主題(內容)的趨勢信息;
時間區間:24小時時段、日、周、月、年,未來可支持自定義;
提供總體的[用戶分布](包括性別、年齡、學歷、地域、職業、特征、愛好等)及詳細的[用戶列表]信息,精準至個體,并支持定向篩選;
貢獻值排名:根據操作行為的權重排序,掌握最核心的用戶;
監測帶有話題或關鍵字的活動在社交平臺的傳播效應,覆蓋Web與Mobile;
先來給大伙看一下集成效果:

下面是詳細的集成過程:
首先來到官網:[http://www.umeng.com/](http://www.umeng.com/)

選擇社會化分享,進入查看這個產品的介紹,下載對應平臺的SDK,筆者這里自然是選擇Android平臺:

筆者集成友盟社會化組件的時候還未更新到4.1,所以使用的4.0版的,點擊下載就可以選擇你想要集成分享的平臺,還有你想要的文檔或者Demo:

這些操作都可以自行到官網進行查看,筆者就不再浪費口舌。
下載完后,解壓縮可以看到以下目錄和文件:

platforms目錄下對應了不同的平臺的所需要的資源和jar包:

然后選擇你想要集成的平臺,復制的res和libs到你的目標項目中去:

這個操作做完之后,在AndroidManifest.xml中增加必要的配置:
~~~
<!-- ************* 分享相關的注冊 START **************-->
<!-- 分享內容編輯頁 -->
<activity
android:name="com.umeng.socialize.view.ShareActivity"
android:configChanges="orientation|keyboard"
android:launchMode="singleTask"
android:noHistory="true"
android:theme="@style/Theme.UMDialog"
android:windowSoftInputMode="stateVisible|adjustResize" >
</activity>
<!-- 騰訊SSO授權的Activity注冊 -->
<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" />
<data android:scheme="tencent100424468" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- 微信回調activity -->
<activity
android:name="com.xiaowu.blogclient.umeng.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- 易信回調activity -->
<activity
android:name=".yxapi.YXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- 人人SSO授權所需的OAuthActivity -->
<activity
android:name="com.renn.rennsdk.oauth.OAuthActivity"
android:configChanges="orientation|navigation|keyboardHidden" />
<!-- facebook相關 -->
<activity android:name=".activity.FacebookActivity" >
</activity>
<activity
android:name="com.facebook.LoginActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- ************* 分享相關的注冊 END **************-->
~~~
然后在代碼中進行如下的初始化操作,小巫已經把各個平臺的使用寫在以下方法:
~~~
/**
* @功能描述 : 初始化與SDK相關的成員變量
*/
private void initConfig() {
mContext = getActivity();
mController = UMServiceFactory.getUMSocialService(DESCRIPTOR);
// 要分享的文字內容
mShareContent = "小巫CSDN博客客戶端,CSDN移動開發專家——IT_xiao小巫的專屬客戶端,你值得擁有。";
mController.setShareContent(mShareContent);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.xiaowu);
mUMImgBitmap = new UMImage(mContext, bitmap);
mController.setShareImage(mUMImgBitmap);
mController.setAppWebSite(""); // 設置應用地址
// 添加新浪和qq空間的SSO授權支持
mController.getConfig().setSsoHandler(new SinaSsoHandler());
// 添加騰訊微博SSO支持
mController.getConfig().setSsoHandler(new TencentWBSsoHandler());
// wx967daebe835fbeac是你在微信開發平臺注冊應用的AppID, 這里需要替換成你注冊的AppID
String appID = "wx880cb2b22509cf25";
// 添加微信平臺
UMWXHandler wxHandler = new UMWXHandler(getActivity(), appID);
wxHandler.addToSocialSDK();
// 支持微信朋友圈
UMWXHandler wxCircleHandler = new UMWXHandler(getActivity(), appID);
wxCircleHandler.setToCircle(true);
wxCircleHandler.addToSocialSDK();
// 設置微信好友分享內容
WeiXinShareContent weixinContent = new WeiXinShareContent();
// 設置分享文字
weixinContent.setShareContent(mShareContent);
// 設置title
weixinContent.setTitle("小巫CSDN博客客戶端");
// 設置分享內容跳轉URL
weixinContent.setTargetUrl("你的http://blog.csdn.net/wwj_748鏈接");
// 設置分享圖片
weixinContent.setShareImage(mUMImgBitmap);
mController.setShareMedia(weixinContent);
// 設置微信朋友圈分享內容
CircleShareContent circleMedia = new CircleShareContent();
circleMedia.setShareContent(mShareContent);
// 設置朋友圈title
circleMedia.setTitle("小巫CSDN博客客戶端");
circleMedia.setShareImage(mUMImgBitmap);
circleMedia.setTargetUrl("你的http://blog.csdn.net/wwj_748鏈接");
mController.setShareMedia(circleMedia);
// 參數1為當前Activity,參數2為開發者在QQ互聯申請的APP ID,參數3為開發者在QQ互聯申請的APP kEY.
UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(getActivity(),
"1102369913", "62ru775qbkentOUp");
qqSsoHandler.addToSocialSDK();
// 參數1為當前Activity,參數2為開發者在QQ互聯申請的APP ID,參數3為開發者在QQ互聯申請的APP kEY.
QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(getActivity(),
"1102369913", "62ru775qbkentOUp");
qZoneSsoHandler.addToSocialSDK();
// 添加人人網SSO授權功能
// APPID:201874
// API Key:28401c0964f04a72a14c812d6132fcef
// Secret:3bf66e42db1e4fa9829b955cc300b737
RenrenSsoHandler renrenSsoHandler = new RenrenSsoHandler(getActivity(),
"271529", "682c45dbdeba4b608922fef124223efb",
"2c7c3b63f58b4bfcad3665b49e65d47f");
mController.getConfig().setSsoHandler(renrenSsoHandler);
// 添加短信
SmsHandler smsHandler = new SmsHandler();
smsHandler.addToSocialSDK();
// 添加email
EmailHandler emailHandler = new EmailHandler();
emailHandler.addToSocialSDK();
QQShareContent qqShareContent = new QQShareContent();
qqShareContent.setShareContent(mShareContent);
qqShareContent.setTitle("小巫CSDN博客");
qqShareContent.setShareImage(mUMImgBitmap);
qqShareContent.setTargetUrl("http://blog.csdn.net/wwj_748");
mController.setShareMedia(qqShareContent);
QZoneShareContent qzone = new QZoneShareContent();
// 設置分享文字
qzone.setShareContent(mShareContent);
// 設置點擊消息的跳轉URL
qzone.setTargetUrl("http://blog.csdn.net/wwj_748");
// 設置分享內容的標題
qzone.setTitle("小巫CSDN博客");
// 設置分享圖片
qzone.setShareImage(mUMImgBitmap);
mController.setShareMedia(qzone);
}
~~~
通過openShare()方法打開分享盤:
~~~
/**
* 打開分享盤
*/
private void openShareBoard() {
mController.openShare(getActivity(), false);
}
~~~
如果使用了SSO授權,有以下代碼:
~~~
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/**使用SSO授權必須添加如下代碼 */
UMSsoHandler ssoHandler = mController.getConfig().getSsoHandler(
requestCode);
if (ssoHandler != null) {
ssoHandler.authorizeCallBack(requestCode, resultCode, data);
}
}
~~~
這個基本上就是友盟社會化組件的使用方法,具體每個平臺涉及到appkey或者appScrent可以到具體平臺創建應用獲取:
新浪微博 ? ? http://open.weibo.com
騰訊微博 ? ? http://dev.t.qq.com
QQ空間 ? ? ? ?http://connect.qq.com/intro/login/
微信好友 ? ? ?http://open.weixin.qq.com
Facebook ? ? ?https://developers.facebook.com
Twitter ? ? ? https://dev.twitter.com
人人網 ? ? ? http://dev.renren.com
開心網 ? ? ? ?http://open.kaixin001.com
搜狐微博 ? ? http://open.t.sohu.com
網易微博 ? ? http://open.t.163.com
豆瓣 ? ? ? ? ?http://developers.douban.com
有道云筆記 ? ?http://note.youdao.com/open/developguide.html#app
印象筆記 ? ? ?https://dev.evernote.com/
Linkedin ? ? ?https://www.linkedin.com/secure/developer?newapp=
FourSquare ? ?https://developer.foursquare.com/
搜狐隨身看 ? https://open.sohu.com/
Flickr ? ? ? ?http://www.flickr.com/services/
Pinterest ? ? http://developers.pinterest.com/
Tumblr ? ? ? ?http://www.tumblr.com/developers
Dropbox ? ? ? https://www.dropbox.com/developers
Instagram ? ? http://instagram.com/developer#
VKontakte ? ? http://vk.com/dev
如果上面有介紹的有遺漏的地方或者不明白的地方,大家可以給小巫留言,小巫會及時補上。
另外小巫CSDN博客客戶端也集成了友盟更新組件,并且已經寫過一篇評測報告,大家可以到以下地址查看:
[http://www.devstore.cn/evaluation/testInfo/113-177.html](http://www.devstore.cn/evaluation/testInfo/113-177.html)
下篇博客預告:有米廣告模塊的集成