获取用户信息接口(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
判断客户端是否装置接口(isClientValid)
ShareSDK 3.10.7版本开始反对
//cn.sharesdk.framework/** * 受权回调 * @param callback 回调后果 */ public void isClientValid(final ShareSDKCallback<Boolean> callback)
示例代码
Platform plat = ShareSDK.getPlatform(Facebook.NAME); plat.isClientValid(new ShareSDKCallback<Boolean>() { @Override public void onCallback(Boolean aBoolean) { //判断是否存在受权凭条的客户端,true是有客户端,false是无客户端}});
受权回调接口(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() { @Override public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) { // 分享胜利回调 } @Override public void onError(Platform platform, int i, Throwable throwable) { // 分享失败回调 platform:平台对象,i:示意以后的动作(9示意分享),throwable:异样信息 } @Override public void onCancel(Platform platform, int i) { // 分享勾销回调 } }); // 启动分享 oks.show(MobSDK.getContext());
指定平台独自分享接口(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);
ShareParams 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或者imageUrl
autdor
有道云笔记的字段,示意分享内容的作者
customFlag
自定义分享标签
上述字段中和本地门路无关的,全副应用“Path”结尾,如imagePath;和网络门路无关的,应用“Url”结尾,如imageUrl。本地图片最好应用后缀名,否则POST文件时,可能无奈正确计算文件的MIME值,从而导致发送失败。
一键分享回调(setCallback)
//cn.sharesdk.onekeyshare/** * 一键分享回调 * @param callback 回调后果 */ public void setCallback(PlatformActionListener callback)
示例代码
oks.setCallback(new PlatformActionListener() { @Override public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) { // 分享胜利回调 } @Override public void onError(Platform platform, int i, Throwable throwable) { // 分享失败回调 platform:平台对象, i:示意以后的动作(9示意分享),throwable:异样信息 } @Override public void onCancel(Platform platform, int i) { // 分享勾销回调 } });
指定平台独自分享回调(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) { //勾销分享的回调 } });