com.sina.weibo.sdk.auth.sso
类 SsoHandler

java.lang.Object
  继承者 com.sina.weibo.sdk.auth.sso.SsoHandler

public class SsoHandler
extends java.lang.Object

该类用于处理 SSO 认证功能,无需输入用户名和密码即可通过微博账号访问经过授权的第三方应用。 使用 SSO 登录前,需要检查手机上是否已经安装新浪微博客户端,目前仅 3.0.0 及以上微博客户端版 本支持 SSO,如果未安装,将自动转为浏览器页面 Oauth2.0 进行认证。

作者:
SINA

构造方法摘要
SsoHandler(Activity activity, WeiboAuth weiboAuth)
          构造函数。
 
方法摘要
 void authorize(int requestCode, WeiboAuthListener listener, java.lang.String packageName)
          SSO 认证授权入口函数。
 void authorize(WeiboAuthListener listener)
          SSO 认证授权入口函数。
 void authorize(WeiboAuthListener listener, java.lang.String packageName)
          使用定制版的微博进行 SSO 授权,请调用该函数。
 void authorizeCallBack(int requestCode, int resultCode, Intent data)
          使用 SSO 授权时,需要手动调用该函数。
static ComponentName isServiceExisted(Context context, java.lang.String packageName)
          检测用于 SSO 授权的远程服务否存在。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

SsoHandler

public SsoHandler(Activity activity,
                  WeiboAuth weiboAuth)
构造函数。

参数:
activity - 发起认证的 Activity
weiboAuth - WeiboAuth 实例
方法详细信息

authorize

public void authorize(WeiboAuthListener listener)
SSO 认证授权入口函数。

参数:
activity - 发起认证的 Activity
listener - 用于接收认证信息的回调

authorize

public void authorize(WeiboAuthListener listener,
                      java.lang.String packageName)
使用定制版的微博进行 SSO 授权,请调用该函数。 优先原则为: 1. 如果手机装有多个不同包名的微博客户端,默认传入包名的客户端优先被调起; 2. 如果包名参数传 null,默认调起主版本微博,客户端优先,无客户端则调起网页授权页。

参数:
listener - 用于接收认证信息的回调
packageName - 用于传入第三方定制微博包名,默认指向官方微博客户端包名

authorize

public void authorize(int requestCode,
                      WeiboAuthListener listener,
                      java.lang.String packageName)
SSO 认证授权入口函数。

参数:
requestCode - 启动 SSOActivity 时传入的请求码,当前仅可使用 REQUEST_CODE_SSO_AUTH
listener - 用于接收认证信息的回调
packageName - 用于传入第三方定制微博包名,默认指向官方微博客户端包名

authorizeCallBack

public void authorizeCallBack(int requestCode,
                              int resultCode,
                              Intent data)
使用 SSO 授权时,需要手动调用该函数。

重要:使用 SSO 授权的Activity必须重写 Activity#onActivityResult(int, int, Intent), 并在内部调用该函数,否则无法授权成功。

Sample Code:

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     super.onActivityResult(requestCode, resultCode, data);
     
     // 在此处调用
     mSsoHandler.onActivityResult(requestCode, resultCode, data);
 }
 

参数:
requestCode - 请查看 Activity#onActivityResult(int, int, Intent)
resultCode - 请查看 Activity#onActivityResult(int, int, Intent)
data - 请查看 Activity#onActivityResult(int, int, Intent)

isServiceExisted

public static ComponentName isServiceExisted(Context context,
                                             java.lang.String packageName)
检测用于 SSO 授权的远程服务否存在。

参数:
context - 当前应用程序上下文环境
packageName - 指定需要绑定的远程 SSO 服务的包名
返回:
如果远程服务存在,返回对应的组件名;否则,返回 null。