首页 > 其他分享 >ShareSDK Android SDK API

ShareSDK Android SDK API

时间:2023-04-19 19:10:37浏览次数:40  
标签:回调 platform void Platform API Android 分享 public SDK

获取用户信息接口(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 one rror(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 one rror(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 one rror(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 one rror(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 one rror(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 one rror(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 one rror(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) {
        //取消分享的回调 
       }
       });

标签:回调,platform,void,Platform,API,Android,分享,public,SDK
From: https://blog.51cto.com/u_14192352/6207202

相关文章

  • 2012 年最佳 Android 应用
    2012年最佳Android应用  •Evernote:云笔记应用•Zappos:美国鞋类电商Zappos官方应用•Pinterest:图片社交网络•Grimm’sSnowWhite:游戏《格林童话:白雪公主》•Expedia:在线旅游网站•Pocket:“稍后再读”应用•Ancestry:家谱网站Ancestry官方应用•Fancy:创意收集应用•......
  • 亚马逊平台使用API接口通过关键字搜索商品
    亚马逊公司(Amazon,简称亚马逊;NASDAQ:AMZN),2022年营收为5140亿美元,是美国最大的一家网络电子商务公司,位于华盛顿州的西雅图。是网络上最早开始经营电子商务的公司之一,亚马逊成立于1994年,一开始只经营网络的书籍销售业务,现在则扩及了范围相当广的其他产品,已成为全球商品品种最多的网......
  • 2023 年十大 API 管理趋势
    本文探讨了API管理在数字化转型中的重要性,以及API管理面临的挑战和发展机遇。文章重点介绍了十大API管理发展趋势,包括API安全性、API标准化、云端API管理解决方案、低代码API平台、API市场、新兴API协议、人工智能与API、开发者体验、API分析和无服务器架构等。......
  • 从申请到调用:全国快递物流查询 API 使用教程
    引言面对越来越多的快递需求和快递公司的日益增多,手动查询快递状态的工作变得愈发繁琐。此时,一个全国快递物流查询API的出现能够极大地提高查询的效率和准确性,解决人工查询的问题,为用户提供更加便捷的服务体验。全国快递物流查询API可以通过接口自动查询快递状态并返回相应信......
  • api-ms-win-core-file-l1-2-0.dll文件问题解决
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个api-ms-win-core-file-l1-2-0.dll文件进行安装(前提是找到适合的版本),当我们执行某......
  • Theme——借助github的API来实现主题自动更新
    前言那么借助的是那个api呢?这里是为了方便测试,使用的是tags,如果是正式的那么应该使用releases,这个后面会直接接入主题;内容侧边公告栏<script>asyncfunctionrequest(url='',method='GET',data={},headers={}){letoptions={method:method,......
  • 企业工商四要素核验 API:有效应对商业欺诈和恶意交易的利器
    引言企业工商四要素核验是一种用于验证企业基本信息的方法,主要包括企业名称、社会统一信用代码、法人名称、法人身份证四个要素。这些要素是企业注册时必须提供的信息,通过对这些信息的验证,可以确定企业的真实性和合法性,通常被用于客户身份验证、信用评估等场景。企业工商四要素......
  • RESTful API 为何成为顶流 API 架构风格?
    作者孙毅,API7.ai技术工程师,ApacheAPISIXCommitter万物互联的世界充满着各式各样的API,如何统筹规范API至关重要。RESTfulAPI是目前世界上最流行的API架构风格之一,它可以帮助你实现客户端与服务端关注点分离,让前后端各自迭代,提升管理效率;其无状态的特性可以让应用更容......
  • APISIX Ingress 如何使用 Cert Manager 管理证书
    ApacheAPISIXIngressController是一款以ApacheAPISIX作为数据面的KubernetesIngressController开源工具,目前已经更新到v1.3版本,实现了如证书管理、负载均衡、金丝雀发布等功能。长久以来,证书管理都不是一件简单的事情,虽然ApacheAPISIXIngressController支持从......
  • 美颜SDK的优化方法:实现高效、快速、精准的美颜处理
    时下,美颜相机、美颜软件等美颜处理应用也越来越受到用户的欢迎。美颜SDK是一种为移动应用提供美颜处理能力的开发工具包,可以帮助开发者快速实现美颜功能,提升应用的用户体验。但是,如何实现高效、快速、精准的美颜处理,是美颜SDK开发者需要面临的一大挑战。本文将从算法优化、硬件加速......