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()函数。就会打开授权页面。每次点击按钮都会发送一个新的微博。如图
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()函数。就会打开授权页面。每次点击按钮都会发送一个新的微博。如图
相关文章推荐
- 【Android进阶】使用第三方平台ShareSDK实现新浪微博的一键分享功能
- 【Android进阶】使用第三方平台 ShareSDK 实现新浪微博的一键分享功能
- 【Android进阶】使用第三方平台 ShareSDK 实现新浪微博的一键分享功能
- 【Android进阶】使用第三方平台 ShareSDK 实现新浪微博的一键分享功能
- Cocos2d-x3.3RC0通过JNI调用Android的Java层代码,实现分享功能
- Android:新浪微博拉起客户端分享——完美实现同时分享图片和文字(Intent.ACTION_SEND)
- Android实现新浪微博SSO授权登录分享文字图片等功能(WEIBO_ANDROID_SDK V2.3.0 )
- Android Intent分享到腾讯微博,信息,新浪微博等等,的实现方式
- Android实现新浪微博SSO授权登录分享文字图片等功能
- ShareSDK for Android 只有新浪微博分享
- android 新浪微博分享功能实现
- Android开发之Fragment与Activity的数据交互通过回调机制实现(源代码分享)
- Android新浪微博分享实现
- Android 中实现分享和第三方登陆---以新浪微博为例
- Android开发之Fragment与Activity的数据交互通过回调机制实现(源代码分享)
- 通过ShareSDK实现分享功能
- ShareSDK for Android 只有新浪微博分享
- android 分享功能实现 即通过其他activity分享
- Android 分享到腾讯微博,新浪微博,信息,等等的实现方式
- 【第三方SDK】使用ShareSDK实现新浪微博的一键分享功能