关于android: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() {
     @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) {
        //勾销分享的回调 
       }
       });

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理