ShareSDK Android SDK API_分享_回调_字段

历史故事本文相关内容:ShareSDK Android SDK API 分享 回调 字段

获取用户信息接口(showUser)

//cn.sharesdk.framework

* 获取用户信息

* @param account 获取指定账号的用户信息,直接设置成null

public void showUser(String account)

示例代码

//设置授权登录的平台

Platform plat = ShareSDK.getPlatform(QQ.NAME);

//授权回调监听,监听oncomplete,,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,,oncancel三种状态

plat.setPlatformActionListener(new PlatformActionListener() {

展开全文

public void (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,,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 (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("");

// text是分享文本,所有平台都需要这个字段

oks.setText("我是分享文本");

//分享网络图片,新浪微博分享网络图片需要通过审核后申请高级写入接口,否则请注释掉测试新浪微博

oks.setImageUrl("");

// url仅在微信(包括好友和朋友圈)中使用

oks.setUrl("");

//分享回调

oks.setCallback(new PlatformActionListener() {

@Override

public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {

// 分享成功回调

@Override

public void (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 (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);

QQ

ShareParams sp = new ShareParams();

sp.setTitle("测试分享的标题");

sp.setTitleUrl(""); // 标题的超链接

sp.setText("测试分享的文本");

sp.setImageUrl("");

sp.setSite("发布分享的网站名称");

sp.setSiteUrl("发布分享网站的地址");

Platform qq = ShareSDK.getPlatform (QQ.NAME);

// 设置分享事件回调(注:回调放在不能保证在主线程调用,不可以在里面直接处理UI操作)

qq.setPlatformActionListener (new PlatformActionListener() {

public void (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的字段,表示是否公开isFriendflickr和VK的字段,表示是否公开给自己的朋友isFamilyflickr的字段,表示是否公开给自己的家人safetyLevelflickr的字段,表示安全级别:1为安全级、2为辅导级、3为限制级contentTypeflickr的字段,表示相册类型:1为相片、2为屏幕截图、3为其他hiddenflickr的字段,表示是否隐藏图片venueNamefoursquare的字段,表示分享位置的名称venueDescriptionfoursquare的字段,表示分享位置的描述latitude分享位置的维度longitude分享位置的经度imageUrl待分享的网络图片comment对分享内容的评价。区别于text,评论一般共应用的用户自己填写,部分平台支持此字段titleUrl分享内容标题的链接地址url分享内容的url、在微信和易信中也使用为视频文件地址address邮箱地址或者短信电话号码,一般在邮箱或者短信中使用siteQQ空间的字段,标记分享应用的名称siteUrlQQ空间的字段,标记分享应用的网页地址gropuIdVK的字段,表示图片所属的组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() {

@Override

public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {

// 分享成功回调

@Override

public void (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 (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) {

//取消分享的回调

特别声明

本文仅代表作者观点,不代表本站立场,本站仅提供信息存储服务。

分享:

扫一扫在手机阅读、分享本文