您的位置:首页 > 移动开发 > Android开发

Android通过ShareSDK实现新浪微博分享

2014-07-14 20:53 375 查看
ShareSDK社会化分享的官方说明:是中国最大的APP内分享服务提供商,ShareSDK社会化分享,全面支持微信,微博,QQ空间,来往,易信,Facebook等国内外40个平台。

ShareSDK官方网站(SDK下载及开发文档):http://share.mob.com



好吧,现在就参考ShareSDKAndroid文档进行进行集成和功能实现。

第一步:下载ShareSDK

http://share.sharesdk.cn/Download



第二步:集成ShareSDK

集成方法有3个:

1. 使用官方快速集成ShareSDK的工具

2. 项目引用

3. 直接复制jar包到目标项目libs目录



第一种涉及系统差异问题(windows和mac的集成方法不一样),现在直接用第3种方法吧,以下是详细官方说明:

直接复制jar和资源的方式,可以参考ShareSDK的Sample项目。
使用复制jar的方法,需要除了复制MainLibs/libs中的jar外,还需要复制MainLibs/res中图片和strings,否则会出现授权时找不到资源的问题。而且如果您的项目也集成了快捷分享,还需要复制OneKeyShare/src中的源码、OneKeyShare/res中的资源,如果你的项目里没有android-support-v4的jar需要把OneKeyShare/libs下的android-support-v4的jar到您的项目中。

第三步:添加应用信息
这个也有3种方法:
1.通过“assets/ShareSDK.xml”文件来配置

2. 通过代码配置“setPlatformDevInfo(String, HashMap<String,Object>)”方法
3. 在ShareSDK的应用管理后台中配置。

现在用第3种方法:登录ShareSDK管理后台,选择添加新应用,输入相关信息确定后几得到key。在我们的应用中只要调用ShareSDK.init(context,你的应用在sharesdk注册时返回的AppKey)方法进行初始化(待会再讲),如果以后更改了注册信息可以直接从网上更改,而不用重新发布新版本进行更新。(优先级最高)

第四步:配置AndroidManifest.xml
不同的集成度需要在AndroidManifest.xml中添加的内容不一样。但是首先您需要添加下面的权限列表:
<uses-permissionandroid:name="android.permission.GET_TASKS"
/>
<uses-permissionandroid:name="android.permission.INTERNET"
/>
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"
/>
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"
/>
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"
/>
<uses-permissionandroid:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permissionandroid:name="android.permission.GET_ACCOUNTS"/>
这些权限将允许您的项目和ShareSDK判断当前应用是否“前置”、获取连接网络的权限、获取您的设备网络状态的权限、实现https安全连接的权限、读取手机设备状态的权限和保存必要配置的权限。一般来说,即便不集成ShareSDK,大部分的项目也都会注册申请这些权限。
其次,为了授权操作可以顺利完成,需要在application下注册下面的Activity:
ShareSDKUIShell的路径是固定的,一定要在“cn.sharesdk.framework”下,因为它在Share-Core中。
<activity
android:name="cn.sharesdk.framework.ShareSDKUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize"
/>



ok,ShareSDK已经集成到我们的项目,下面我们在应用中调用微博分享,先上代码再解释(其它分享请查看官方文档,基本是一样的,微信步骤会多点):
public void share(){
HashMap<String,Object>hashMap = new HashMap<String, Object>();
hashMap.put("Id","1");//自定义字段,整型,用于您项目中对此平台的识别符
hashMap.put("SortId","1");//"此平台在您分享列表中的位置,整型,数值越大越靠后"
hashMap.put("AppKey","171970****");//填写您在新浪微博上注册到的AppKey
hashMap.put("AppSecret","353403954b046ed0e378063c26e*****");
hashMap.put("RedirectUrl","http://www.***.com");//填写您在新浪微博上注册的RedirectUrl
hashMap.put("ShareByAppClient","true");//是否使用客户端进行分享
hashMap.put("Enable","true");//布尔值,标记此平台是否有效
ShareSDK.setPlatformDevInfo(SinaWeibo.NAME,hashMap);
ShareParamssp = new ShareParams();
sp.setText(“测试分享的文本”);
sp.setImagePath(“/mnt/sdcard/测试分享的图片.jpg”);

Platformweibo = ShareSDK.getPlatform(context,
TencentWeibo.NAME);
weibo.setPlatformActionListener(new PlatformActionListener(){


public void onError(Platform platform,
int action,
Throwable t){
//
操作失败的处理代码
}


public void onComplete(Platform platform,
int action,

HashMap<String, Object> res){
//
操作成功的处理代码
}


public void onCancel(Platform platform,
int action){
//
操作取消的处理代码
}

});
weibo.share(sp);
// 执行图文分享
}
如上面代码,需要我们有新浪微博的授权。进入新浪微博的开发平台(http://open.weibo.com/wiki/首页),使用微博账号登录注册成为开发者后,进入管理后台,点击创建应用,再选微连接应用(如图)。到后台查看我们的应用信息(如图),把相关信息替换以上代码带**的信息。还需要到接口管理(如图)讲OAuth2.0
授权设置里的授权回调页和取消授权回调页设置为
https://api.weibo.com/oauth2/default.html






我们在应用中设置一个按钮,监听事件里调用上面的share()函数。就会打开授权页面。每次点击按钮都会发送一个新的微博。如图
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: