登录/校验登录态
A、接口使用场景
通过调用Tencent类的login函数发起登录/校验登录态。
B、接口说明
该接口具有两个作用,1. 如果开发者没有调用mTencent实例的setOpenId、setAccessToken接口,则该接口执行正常的登录操作;2. 如果开发者先调用mTencent实例的setOpenId、setAccessToken接口,则该接口执行校验登录态的操作。如果登录态有效,则返回成功给app,如果登录态失效,则会自动进入登录流程,将最新的登录态数据返回给app。
建议开发者在每次app启动时调用一次该接口(先调用setOpenId、setAccessToken),以确保每次打开app时用户都是有登录态的。
C、接口方法
int com.tencent.tauth.Tencent.login(Activity activity, String scope, IUiListener listener)
int com.tencent.tauth.Tencent.login(Activity activity, String scope, IUiListener listener,boolean qrcode)
D、参数说明
调用登录接口的参数说明如下:
参数 | 参数说明 |
activity | 调用者activity。应用使用SDK时,会从应用自己的Activity跳转到SDK的Activity,应用调用SDK的Activity即为这里的调用者activity。 |
scope | 应用需要获得哪些接口的权限,由“,”分隔。例如: SCOPE = “get_simple_userinfo,add_topic”;所有权限用“all” |
listener | 回调接口,IUiListener实例。 |
qrcode | 是否开启二维码登录,没有安装手Q时候使用二维码登录,一般用电视等设备。 |
activity.mIntent(非方法参数) | 执行语句activity.getIntent().putExtra(AuthAgent.KEY_FORCE_QR_LOGIN, true);可以强制唤起扫码界面(无论是否安装手Q) |
E、返回码说明
0:正常
-1: 异常
1 : 使用Activity登陆
2 : 使用H5登陆或显示下载页面
F、示例代码调用登录接口的示例代码如下:
private void doLogin() { IUiListener listener = new BaseUiListener() { @Override protected void doComplete(JSONObject values) { updateLoginButton(); } }; mTencent.login(this, SCOPE, listener); } |
G、接收登录成功后返回的数据在调用login的Activity或者Fragment重写onActivityResult方法,示例代码如下:
protected void onActivityResult(int requestCode, int resultCode, Intent data) { If (requestCode == Constants.REQUEST_LOGIN) { Tencent.onActivityResultData(requestCode,resultCode,data,listener); } super.onActivityResult(requestCode, resultCode, data); } |