1.常用的分享功能实现的框架
http://mob.com/
2.sharesdk说明:
ShareSDK是一种社会化分享组件,为iOS、Android、WP8 的APP提供社会化功能,集成了一些常用的类库和接口,缩短开发者的开发时间,还有社会化统计分析管理后台。
支持包括QQ、微信、新浪微博、腾讯微博、开心网、人人网、豆瓣、网易微博、搜狐微博、facebook、twitter、google+等国内外40多家的主流社交平台,帮助开发者轻松实现社会化分享、登录、关注、获得用户资料、获取好友列表等主流的社会化功能,强大的统计分析管理后台,可以实时了解用户、信息流、回流率、传播效率等数据,有效地指导移动APP的日常运营与推广,同时为APP引入更多的社会化流量。
SharesSDK快速集成到项目中。
1.进入官网http://mob.com/,注册或登录
2.下载之前,先创建一个应用,并获取自动生成的key。
3.下载ShareSDK for Android,同时需要的话,还可以下载官方的demo源码
4.接着按照快速集成指南完成配置
第一步:使快速工具进行集成
解压后,进入ShareSDK解压目录,打开“Share SDK for Android”目录,可以找到“QuickIntegrater.jar”,这个就是快速集成ShareSDK的工具
window下:
首先确定您已经安装了JDK,并且正确配置了JAVA_HOME和PATH系统变量,此时您可以双击QuickIntegrater启动程序
根据项目的AndroidMenifest.xml和Gradle文件正确输入项目的名称和包名,勾选需要的集成的平台,然后点击“确定”。
QuickIntegrater会自行产生一个文件夹,(如上)复制此文件夹中所有文件到您的项目中覆盖即可。
第二步:配置AndroidManifest.xml
1、添加权限
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
2、添加activity信息
<activity
android:name="com.mob.tools.MobUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" >
<intent-filter>
<data android:scheme="tencent100371282" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
intent-filter>
<intent-filter>
<action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
intent-filter>
activity>
3、如果您集成了微信,易信,支付宝还需要添加下面回调的activity处理;(集成了哪个,就添加哪个的声明)
<activity
android:name=".wxapi.WXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" />
<activity
android:name=".yxapi.YXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" />
<activity
android:name=".apshare.ShareEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"/>
4、替换mob后台申请的Appkey与各个平台申请的key
打开生成的ShareSDK.xml文件
<DevInfor>
<ShareSDK
AppKey = "229a59689980a"/>
<SinaWeibo
Id="1"
SortId="1"
AppKey="568898243"
AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"
RedirectUrl="http://www.sharesdk.cn"
ShareByAppClient="true"
Enable="true" />
<TencentWeibo
Id="2"
SortId="2"
AppKey="801307650"
AppSecret="ae36f4ee3946e1cbb98d6965b0b2ff5c"
RedirectUri="http://sharesdk.cn"
Enable="true" />
<QZone
Id="3"
SortId="3"
AppId="100371282"
AppKey="aed9b0303e3ed1e27bae87c33761161d"
Enable="true" />
<Wechat
Id="4"
SortId="4"
AppId="wx4868b35061f87885"
AppSecret="64020361b8ec4c99936c0e3999a9f249"
BypassApproval="true"
Enable="true" />
<WechatMoments
Id="5"
SortId="5"
AppId="wx4868b35061f87885"
AppSecret="64020361b8ec4c99936c0e3999a9f249"
BypassApproval="true"
Enable="true" />
<WechatFavorite
Id="6"
SortId="6"
AppId="wx4868b35061f87885"
AppSecret="64020361b8ec4c99936c0e3999a9f249"
Enable="true" />
<QQ
Id="7"
SortId="7"
AppId="100371282"
AppKey="aed9b0303e3ed1e27bae87c33761161d"
ShareByAppClient="true"
Enable="true" />
<Facebook
Id="8"
SortId="8"
ConsumerKey="107704292745179"
ConsumerSecret="38053202e1a5fe26c80c753071f0b573"
RedirectUrl="http://mob.com"
Enable="true" />
<Twitter
Id="9"
SortId="9"
ConsumerKey="LRBM0H75rWrU9gNHvlEAA2aOy"
ConsumerSecret="gbeWsZvA9ELJSdoBzJ5oLKX0TU09UOwrzdGfo9Tg7DjyGuMe8G"
CallbackUrl="http://mob.com"
Enable="true" />
<Renren
Id="10"
SortId="10"
AppId="226427"
ApiKey="fc5b8aed373c4c27a05b712acba0f8c3"
SecretKey="f29df781abdd4f49beca5a2194676ca4"
Enable="true" />
<KaiXin
Id="11"
SortId="11"
AppKey="358443394194887cee81ff5890870c7c"
AppSecret="da32179d859c016169f66d90b6db2a23"
RedirectUri="http://www.sharesdk.cn"
Enable="true" />
<Email
Id="12"
SortId="12"
Enable="true" />
<ShortMessage
Id="13"
SortId="13"
Enable="true" />
<Douban
Id="16"
SortId="16"
ApiKey="031a96a3aa8b28af094fc3eaffa17a0d"
Secret="2e675e730571b75d"
RedirectUri="http://mob.com"
Enable="true" />
<YouDao
Id="17"
SortId="17"
HostType="product"
ConsumerKey="dcde25dca105bcc36884ed4534dab940"
ConsumerSecret="d98217b4020e7f1874263795f44838fe"
RedirectUri="http://www.sharesdk.cn/"
Enable="true" />
<Evernote
Id="19"
SortId="19"
HostType="sandbox"
ConsumerKey="sharesdk-7807"
ConsumerSecret="d05bf86993836004"
ShareByAppClient="true"
Enable="true" />
<LinkedIn
Id="20"
SortId="20"
ApiKey="ejo5ibkye3vo"
SecretKey="cC7B2jpxITqPLZ5M"
RedirectUrl="http://sharesdk.cn"
Enable="true" />
<GooglePlus
Id="21"
SortId="21"
ClientID="682795613743-cfo3a8r4va0ujja7qofr54hobt2kv3cq.apps.googleusercontent.com"
RedirectUrl="http://localhost"
ShareByAppClient = "false"
Enable="true" />
<FourSquare
Id="22"
SortId="22"
ClientID="G0ZI20FM30SJAJTX2RIBGD05QV1NE2KVIM2SPXML2XUJNXEU"
ClientSecret="3XHQNSMMHIFBYOLWEPONNV4DOTCDBQH0AEMVGCBG0MZ32XNU"
RedirectUrl="http://www.sharesdk.cn"
Enable="true" />
<Pinterest
Id="23"
SortId="23"
ClientId="1432928"
Enable="true" />
<Flickr
Id="24"
SortId="24"
ApiKey="33d833ee6b6fca49943363282dd313dd"
ApiSecret="3a2c5b42a8fbb8bb"
RedirectUri="http://www.sharesdk.cn"
Enable="true" />
<Tumblr
Id="25"
SortId="25"
OAuthConsumerKey="2QUXqO9fcgGdtGG1FcvML6ZunIQzAEL8xY6hIaxdJnDti2DYwM"
SecretKey="3Rt0sPFj7u2g39mEVB3IBpOzKnM3JnTtxX2bao2JKk4VV1gtNo"
CallbackUrl="http://sharesdk.cn"
Enable="true" />
<Dropbox
Id="26"
SortId="26"
AppKey="i5vw2mex1zcgjcj"
AppSecret="3i9xifsgb4omr0s"
RedirectUri="https://www.sharesdk.cn"
Enable="true" />
<VKontakte
Id="27"
SortId="27"
ApplicationId="3921561"
Enable="true" />
<Instagram
Id="28"
SortId="28"
ClientId="ff68e3216b4f4f989121aa1c2962d058"
ClientSecret="1b2e82f110264869b3505c3fe34e31a1"
RedirectUri="http://sharesdk.cn"
Enable="true" />
<Yixin
Id="29"
SortId="29"
AppId="yx0d9a9f9088ea44d78680f3274da1765f"
BypassApproval="true"
Enable="true" />
<YixinMoments
Id="30"
SortId="30"
AppId="yx0d9a9f9088ea44d78680f3274da1765f"
BypassApproval="true"
Enable="true" />
<Mingdao
Id="31"
SortId="31"
AppKey="EEEE9578D1D431D3215D8C21BF5357E3"
AppSecret="5EDE59F37B3EFA8F65EEFB9976A4E933"
RedirectUri="http://sharesdk.cn"
Enable="true" />
<Line
Id="32"
SortId="32"
Enable="true" />
<KakaoTalk
Id="33"
SortId="33"
AppKey="48d3f524e4a636b08d81b3ceb50f1003"
Enable="true" />
<KakaoStory
Id="34"
SortId="34"
AppKey="48d3f524e4a636b08d81b3ceb50f1003"
Enable="true" />
<WhatsApp
Id="35"
SortId="35"
Enable="true" />
<Bluetooth
Id="36"
SortId="36"
Enable="true" />
<Pocket
Id="37"
SortId="37"
ConsumerKey="32741-389c565043c49947ba7edf05"
Enable="true" />
<Instapaper
Id="38"
SortId="38"
ConsumerKey="4rDJORmcOcSAZL1YpqGHRI605xUvrLbOhkJ07yO0wWrYrc61FA"
ConsumerSecret="GNr1GespOQbrm8nvd7rlUsyRQsIo3boIbMguAl9gfpdL0aKZWe"
Enable="true" />
<FacebookMessenger
Id="39"
SortId="39"
AppId="107704292745179"
Enable="true" />
<Alipay
Id="50"
SortId="50"
AppId="2015072400185895"
Enable="true"/>
<AlipayMoments
Id="51"
SortId="51"
AppId="2015072400185895"
Enable="true"/>
DevInfor>
注意:这里提到我们需要在新浪微博平台提供一个应用,在这里做好配置。这样分享就会显示来自于比如“尚硅谷”。如果不写呢,这里发现也提供了默认的值,比如会显示来自于sharesdk.真正工作的时候,项目中要替换掉,去微博去注册。
第三步:添加分享代码
在您程序启动的时候添加初始化代码(注:不要等调用ShareSDK功能之前才初始化)
ShareSDK.initSDK(this);
在您的代码中调用此方法,即可打开一键分享功能进行分享
private void showShare() {
OnekeyShare oks = new OnekeyShare();
//关闭sso授权
oks.disableSSOWhenAuthorize();
// title标题,印象笔记、邮箱、信息、微信、人人网、QQ和QQ空间使用
oks.setTitle(getResources().getString(R.string.app_name));
// titleUrl是标题的网络链接,仅在Linked-in,QQ和QQ空间使用
oks.setTitleUrl("http://www.baidu.com");
// text是分享文本,所有平台都需要这个字段
oks.setText("世界上最遥远的距离,是我在if里你在else里,似乎一直相伴又永远分离;\n" +
" 世界上最痴心的等待,是我当case你是switch,或许永远都选不上自己;\n" +
" 世界上最真情的相依,是你在try我在catch。无论你发神马脾气,我都默默承受,静静处理。到那时,再来期待我们的finally。");
//分享网络图片,新浪微博分享网络图片需要通过审核后申请高级写入接口,否则请注释掉测试新浪微博
oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
//oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
// url仅在微信(包括好友和朋友圈)中使用
oks.setUrl("http://www.baidu.com");
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
oks.setComment("word妈呀,精辟的不要不要的!");
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite(getResources().getString(R.string.app_name));
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl("http://www.baidu.com");
// 启动分享GUI
oks.show(this.getActivity());
}