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;
先来给大伙看一下集成效果:
下面是详细的集成过程:
选择社会化分享,进入查看这个产品的介绍,下载对应平台的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博客客户端也集成了友盟更新组件,并且已经写过一篇评测报告,大家可以到以下地址查看:
下篇博客预告:有米广告模块的集成
分享到:
相关推荐
CSDN-Blog-Client, 小巫CSDN博客客户端,CSDN人气博主——小巫的倾情之作。
本文将深入剖析“小巫CSDN博客客户端源码”,帮助读者理解Android应用开发的基本原理,特别是针对CSDN博客接口的调用与模拟客户端的实现。 首先,"小巫CSDN博客客户端源码"是一个基于Eclipse开发的项目,这表明它是...
【Android小巫CSDN博客客户端源码】是一款基于Android平台的应用程序,旨在为用户提供一个方便的途径来阅读和浏览CSDN博客上的文章。这个源码是开发者小巫分享的,供其他开发者学习和参考,以提升Android开发技能。 ...
综上所述,【Android开发小巫新闻客户端】项目涵盖了Android应用开发的多个核心领域,涉及了从UI设计到网络请求、数据处理、性能优化等一系列技术点。通过这个项目,开发者不仅可以提升Android开发技能,还能深入...
Android应用--简、美音乐播放器原型放送(作者:小巫) - 巫_1曲待续 Android应用--简、美音乐播放器原型放送(作者:小巫) - 巫_1曲待续
1. **Android SDK**:Android应用开发的基础是Android Software Development Kit (SDK),它包含了开发、测试和调试Android应用所需的所有工具。开发者需要熟悉Android Studio,这是一个集成开发环境(IDE),提供了...
在Android应用开发中,集成第三方登录与分享功能已经成为提高用户体验和增强用户互动的重要手段。本文将深入探讨如何在Android项目中实现友盟(Umeng)的第三方登录与分享功能,结合提供的完整实例源码,帮助开发者...
小巫新闻客户端的开发涵盖了移动应用开发的多个重要环节,包括界面设计、网络通信、数据解析、数据库操作以及用户体验优化。通过这样的项目,开发者能够全面了解并掌握Android应用开发的流程和技术栈,同时也展示了...
【小巫新闻客户端完整源代码】是一个公开的项目,它提供了小巫博主开发的新闻客户端应用的全部源码。这个项目对于学习移动应用开发,尤其是对Android或iOS平台有兴趣的开发者来说,是一份宝贵的参考资料。小巫博主在...
总的来说,"小巫新闻客户端底部菜单实现"是一个学习Android应用开发中底部导航菜单的好资源,可以帮助开发者掌握这一常见UI组件的使用。通过阅读和分析源代码,可以深入了解`BottomNavigationView`的工作原理,以及...
这是我的博客参考的代码,我一并上传,大家参考起来比较方便,同时不要积分,互相借鉴! 我的博客链接:http://blog.csdn.net/u012320459/article/details/47373893
小巫新闻客户端开发所有文件,项目源代码+服务端代码+数据库文件
A-week-to-develop-android-app-plan 一周开发Android App计划 ##首批参与成员 -小巫 -墨香 -梦痕 -边城刀客 -徐cc ##要求 -每位认领者按照开源规范来做,代码规范和Android开发规范 -每位认领者必须拥有github账号...
《Android应用开发详解》 Android App,作为全球最受欢迎的移动操作系统平台之一,为开发者提供了丰富的功能和无限的创新可能。Android应用通常由一系列组件构成,包括活动(Activity)、服务(Service)、广播接收...
同时,Android Studio作为官方集成开发环境(IDE),其使用方法和基本配置也是学习的第一步。 【Android游戏框架】 Android游戏开发通常会用到特定的游戏框架,例如LibGDX或Unity。"疯狂连连看"可能使用的是...
在Android应用开发中,侧滑菜单(Sliding Menu)是一种常见的设计模式,它允许用户通过从屏幕边缘向内滑动来展示或隐藏一个侧边栏,通常包含导航选项或者设置等。这种设计使得用户能够在不离开当前界面的情况下访问...
通过阅读博客和查看提供的DateTimePicker源码,我们可以学习到如何将理论知识转化为实际应用,进一步提升Android开发能力。 总的来说,自定义日期选择器是Android开发中的一个重要实践,它涉及到了Android UI设计、...