关于android:ShareSDK-Android-SDK-API

6次阅读

共计 6340 个字符,预计需要花费 16 分钟才能阅读完成。

获取用户信息接口(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() {
     @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);

QQ

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) {// 勾销分享的回调}
       });
正文完
 0