ShareSDK Android SDK API
获取用户信息接口(showUser)//cn.sharesdk.framework/**
获取用户信息
@param account 获取指定账号的用户信息,直接设置成 null*/
public void showUser(String account)示例代码
//设置授权登录的平台 Platform plat = ShareSDK.getPlatform(QQ.NAME);//授权回调监听,监听 oncomplete,onerror,oncancel 三种状态 plat.setPlatformActionListener(platformActionListener);//抖音登录适配安卓 9.0//ShareSDK.setActivity(MainActivity.this);plat.showUser(null);授权接口(authorize)//cn.sharesdk.framework/**
第三方授权*/
public void authorize()示例代码
Platform plat = ShareSDK.getPlatform(Facebook.NAME);//授权回调监听,监听 oncomplete,onerror,oncancel 三种状态 plat.setPlatformActionListener(new PlatformActionListener() {public void onError(Platform platform, int i, Throwable throwable) {//失败的回调,授权失败的回调 platform:平台对象,i:表示当前的动作(9 表示分享),throwable:异常信息
}public void onComplete(Platform platform, int i, HashMap arg2) {//分享成功的回调}public void onCancel(Platform platform, int i) {//取消分享的回调}});//抖音登录适配安卓 9.0//ShareSDK.setActivity(this);plat.authorize();其他辅助接口除此方法,ShareSDK 还提供一些辅助方法,如下所示:
plat.removeAccount(true) 移除授权状态和本地缓存,下次授权会重新授权获取新的授权信息 plat.SSOSetting(false) SSO 授权,传 false 默认是客户端授权,没有客户端授权或者不支持客户端授权会跳 web 授权;设置成 true 是关闭 SSO 授权(关闭客户端授权)plat.setPlatformActionListener(this) 授权回调监听,监听 oncomplete,onerror,oncancel 三种状态 plat.isAuthValid() 判断是否已经存在授权状态,可以根据自己的登录逻辑设置 ShareSDK.setActivity(this); 抖音登录适配安卓 9.0 授权回调接口(setPlatformActionListener)//cn.sharesdk.framework/**
授权回调
@param callback 回调结果*/
public void setPlatformActionListener(PlatformActionListener callback)示例代码
qzone.setPlatformActionListener(new PlatformActionListener() {public void onError(Platform platform, int i, Throwable throwable) {//授权失败的回调 platform:平台对象,i:表示当前的动作(9 表示分享),throwable:异常信息
}public void onComplete(Platform platform, int i, HashMap arg2) {//授权成功的回调
//输出所有授权信息 arg0.getDb().exportData();}public void onCancel(Platform platform, int i) {//授权取消的回调}});一键分享接口(show)//cn.sharesdk.onekeyshare/**
一键分享
@param context 分享参数*/
public void show(Context context)示例代码
final OnekeyShare oks = new OnekeyShare();//指定分享的平台,如果为空,还是会调用九宫格的平台列表界面 if (platform != null) {oks.setPlatform(platform);}// title 标题,印象笔记、邮箱、信息、微信、人人网和 QQ 空间使用 oks.setTitle("标题");// titleUrl 是标题的网络链接,仅在 Linked-in,QQ 和 QQ 空间使用 oks.setTitleUrl("http://sharesdk.cn");// text 是分享文本,所有平台都需要这个字段 oks.setText("我是分享文本");//分享网络图片,新浪微博分享网络图片需要通过审核后申请高级写入接口,否则请注释掉测试新浪微博 oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");// url 仅在微信(包括好友和朋友圈)中使用 oks.setUrl("http://sharesdk.cn");//分享回调 oks.setCallback(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {// 分享成功回调}
@Overridepublic void onError(Platform platform, int i, Throwable throwable) {// 分享失败回调 platform:平台对象,i:表示当前的动作(9 表示分享),throwable:异常信息
指定平台单独分享接口(share)//cn.sharesdk.framework/**
单独分享
@param params 分享参数*/
public void share(Platform.ShareParams params)示例代码
下面分别使用 Twitter 和 QQ 作为例子,举例如何利用此方法实现分享功能。
Twitter 分享 ShareParams sp = new ShareParams();sp.setText("测试分享的文本");sp.setImagePath("/mnt/sdcard/测试分享的图片.jpg");Platform tw = ShareSDK.getPlatform(Twitter.NAME);// 设置分享事件回调(注:回调放在不能保证在主线程调用,不可以在里面直接处理 UI 操作)tw.setPlatformActionListener (new PlatformActionListener() {public void onError(Platform platform, int i, Throwable throwable) {// 失败的回调, platform:平台对象,i:表示当前的动作(9 表示分享),throwable:异常信息
}public void onComplete(Platform platform, int i, HashMap arg2) {// 分享成功的回调}public void onCancel(Platform platform, int i) {// 取消分享的回调}});// 执行图文分享 tw.share(sp);QQShareParams sp = new ShareParams();sp.setTitle("测试分享的标题");sp.setTitleUrl("http://sharesdk.cn"); // 标题的超链接 sp.setText("测试分享的文本");sp.setImageUrl("http://www.someserver.com/测试图片网络地址.jpg");sp.setSite("发布分享的网站名称");sp.setSiteUrl("发布分享网站的地址");Platform qq = ShareSDK.getPlatform (QQ.NAME);// 设置分享事件回调(注:回调放在不能保证在主线程调用,不可以在里面直接处理 UI 操作)qq.setPlatformActionListener (new PlatformActionListener() {public void onError(Platform platform, int i, Throwable throwable) {// 失败的回调,platform:平台对象,i:表示当前的动作(9 表示分享),throwable:异常信息
}public void onComplete(Platform platform, int i, HashMap arg2) {// 分享成功的回调}public void onCancel(Platform platform, int i) {// 取消分享的回调}});// 执行图文分享 qq.share(sp);具体各个平台具体所需参数可以参考不同平台的详细参数说明;
ShareSDK 的每一个平台都有自己的 ShareParams,由于平台差异,不同平台之间的 ShareParams 字段数量不一样,但是同样名称的字段都表示相同的含义,下面是当前 ShareSDK 所有平台 ShareParams 的字段的名称和代表的含义:
字段名称 描述 text 待分享的文本 imagePath 待分享的本地图片。如果目标平台使用客户端分享,此路径不可以在/data/data 下面 filePath 待分享的文件路径。这个用在 Dropbox 和 Wechat 中 title 分享内容的标题 notebook 存放笔记的笔记本,如果不存在,会创建。一般用在印象笔记等“笔记类”平台中 stack 印象笔记中的字段,用于归类笔记本 resource 印象笔记中的字段,数组,暂时支持 String 类型和 File 类型的元素。如果想一次发送多个文本和图片,需要使用这个字段 tags 标签,数组,部分平台支持为分享内容设置标签,可以使用这个字段 isPublic 印象笔记和 flickr 的字段,表示是否公开 isFriend flickr 和 VK 的字段,表示是否公开给自己的朋友 isFamily flickr 的字段,表示是否公开给自己的家人 safetyLevel flickr 的字段,表示安全级别:1 为安全级、2 为辅导级、3 为限制级 contentType flickr 的字段,表示相册类型:1 为相片、2 为屏幕截图、3 为其他 hidden flickr 的字段,表示是否隐藏图片 venueName foursquare 的字段,表示分享位置的名称 venueDescription foursquare 的字段,表示分享位置的描述 latitude 分享位置的维度 longitude 分享位置的经度 imageUrl 待分享的网络图片 comment 对分享内容的评价。区别于 text,评论一般共应用的用户自己填写,部分平台支持此字段 titleUrl 分享内容标题的链接地址 url 分享内容的 url、在微信和易信中也使用为视频文件地址 address 邮箱地址或者短信电话号码,一般在邮箱或者短信中使用 site QQ 空间的字段,标记分享应用的名称 siteUrl QQ 空间的字段,标记分享应用的网页地址 gropuId VK 的字段,表示图片所属的组 ID。如果不设置此字段,ShareSDK 会将组 ID 设置为 ShareSDK 所在的组 shareType 微信和易信的字段,分享内容的类型: 分别为 Platform.SHARE_TEXT(分享文本), Platform.SHARE_IMAGE(分享图片), Platform.SHARE_WEBPAGE(分享网页,既图文分享), Platform.SHARE_MUSIC(分享音频), Platform.SHARE_VIDEO(分享视频), Platform.SHARE_APPS(分享应用,仅微信支持), Platform.SHARE_FILE(分享文件,仅微信支持) Platform.SHARE_EMOJI(分享表情,仅微信支持)musicUrl 微信和易信的字段,分享音频时的音频文件网络地址 imageData 微信和易信的字段,各类分享内容中的图片 bitmap 对象,可以替代 imagePath 或者 imageUrlautdor 有道云笔记的字段,表示分享内容的作者 customFlag 自定义分享标签上述字段中和本地路径有关的,全部使用“Path”结尾,如 imagePath;和网络路径有关的,使用“Url”结尾,如 imageUrl。本地图片最好使用后缀名,否则 POST 文件时,可能无法正确计算文件的 MIME 值,从而导致发送失败。
一键分享回调(setCallback)//cn.sharesdk.onekeyshare/**
一键分享回调
@param callback 回调结果*/public void setCallback(PlatformActionListener callback)示例代码
oks.setCallback(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {// 分享成功回调}
@Overridepublic void onError(Platform platform, int i, Throwable throwable) {// 分享失败回调 platform:平台对象, i:表示当前的动作(9 表示分享),throwable:异常信息
指定平台单独分享回调(setPlatformActionListener)//cn.sharesdk.framework/**
单独分享回调
@param callback 回调结果*/
public void setPlatformActionListener(PlatformActionListener callback)示例代码
qzone.setPlatformActionListener(new PlatformActionListener() {public void onError(Platform platform, int i, Throwable throwable) {//失败的回调, platform:平台对象, i:表示当前的动作(9 表示分享),throwable:异常信息}public void onComplete(Platform platform, int i, HashMap arg2) {//分享成功的回调
}public void onCancel(Platform platform, int i) {//取消分享的回调}});
评论