常用的分享功能实现的框架
http://mob.com/
https://www.umeng.com/
sharesdk说明:
ShareSDK是一种社会化分享组件,为iOS、Android、WP8 的APP提供社会化功能,集成了一些常用的类库和接口,缩短开发者的开发时间,还有社会化统计分析管理后台。
支持包括QQ、微信、新浪微博、腾讯微博、开心网、人人网、豆瓣、网易微博、搜狐微博、facebook、twitter、google+等国内外40多家的主流社交平台,帮助开发者轻松实现社会化分享、登录、关注、获得用户资料、获取好友列表等主流的社会化功能,强大的统计分析管理后台,可以实时了解用户、信息流、回流率、传播效率等数据,有效地指导移动APP的日常运营与推广,同时为APP引入更多的社会化流量。
如何集成sharesdk
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启动程序
如果不能正常双击启动,还可以在命令行执行: E:\teach\16p2p金融项目\尚硅谷硅谷p2p金融_宋红康\工具\框架\ShareSDK-Android-2.7.10\ShareSDK for Android > javaw -jar QuickIntegrater.jar
根据项目的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.ACCESSWIFISTATE" />
<uses-permission android:name="android.permission.ACCESSNETWORKSTATE" />
<uses-permission android:name="android.permission.CHANGEWIFISTATE" />
<uses-permission android:name="android.permission.WRITEEXTERNALSTORAGE" />
<uses-permission android:name="android.permission.READPHONESTATE" />
<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.ACTIONSDKREQ_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
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.真正工作的时候,项目中要替换掉,去微博去注册。
第三步:添加分享代码
在您的代码中调用此方法,即可打开一键分享功能进行分享
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.atguigu.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.atguigu.com");
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
oks.setComment("word妈呀,精辟的不要不要的!");
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite(getResources().getString(R.string.app_name));
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl("http://www.atguigu.com");
// 启动分享GUI oks.show(this.getActivity());
}