登录说明

google登录接入说明

注意:接入登录和支付后如果有关类找不到,需要接入核心库和网络库

1
2
implementation 'com.github.muyishuangfeng:YKCore:1.0.0'
implementation 'com.github.muyishuangfeng:YKNet:1.0.1'
  • 1、在project 下的build 导入仓库地址

    maven {
     url "https://jitpack.io"}
  • 2、在moudle下面的build文件下添加网络库依赖

    implementation 'com.github.muyishuangfeng:YKGoogle:1.0.0'

1、初始化参数说明

参数 类型 是否必须 说明
debug boolean 是否开启debug模式
clientID String Google平台配置的客户端ID
requestCode int 支付请求码
Target int 是否开启Google登录
LoginObject bean 登录配置的参数
OnLoginStateListener Interface 登录回调接口

2、支付调用方式

  • 1、初始化(刚进入应用或者支付页面的时候配置)

    private void init() {
      YKGameOptions options = new YKGameOptions.Builder(this)
              .debug(true)
              .google(clientID)
              .requestCode(REQUEST_CODE)
              .build();
      YKGameSdk.init(options);
    }
    • 2、接口回调(可以写成匿名内部类的方式也可以写成全局方式)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mOnLoginListener = new OnLoginStateListener() {
@Override
public void onState(Activity activity, LoginResult result) {
case LoginResult.STATE_RESULT:
BaseEntry entry = result.getBaseEntry();
if(entry!=nul){
switch (entry.getCode()) {
case YKGameValues.GOOGLE_LOGIN_SUCCESS: {
Log.e(TAG, "success=====" + entry.getResult());
break;
}
case YKGameValues.GOOGLE_LOGIN_FAILED: {
Log.e(TAG, "failed=====" + entry.getResult());
break;
}
}


}

};
  • 3、登录开始
1
2
3
4
5
LoginObject object = new LoginObject();
object.setmGoogleClient(clientID);//客户端ID
object.setSelfRequestCode(REQUEST_CODE);//请求码
object.setLoginOut(false);//是否清空登录信息重新登录
LoginManager.login(GoogleActivity.this, Target.LOGIN_GOOGLE, object, mOnLoginListener);

  • 4、退出登录
1
2
3
4
5
LoginObject object = new LoginObject();
object.setmGoogleClient(clientID);//客户端ID
object.setSelfRequestCode(REQUEST_CODE);//请求码
object.setLoginOut(true);//是否退出登录
LoginManager.login(GoogleActivity.this, Target.LOGIN_GOOGLE, object, mOnLoginListener);

  • 5、结果码(具体以接口回调结果为准)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//开始
STATE_START
//成功
STATE_SUCCESS
//失败
STATE_FAIL
//取消
STATE_CANCEL
//完成
STATE_COMPLETE
//有效
STATE_ACTIVE
//退出登录
STATE_LOGIN_OUT
//登录成功
GOOGLE_LOGIN_SUCCESS
//登录失败
GOOGLE_LOGIN_FAILED

注意:LoginResult 附带有登录结果 result.getResultModel().toString()为具体信息

Facebook登录说明

注意:如果在project下的build文件文件下添加了网络库,请忽略1、3配置,直接看2

  • 1、在project 下的build 导入仓库地址
1
2
3
4
5
maven {

url "https://jitpack.io"

}
  • 2、在moudle下面的build文件下添加网络库依赖

    1
    implementation 'com.github.muyishuangfeng:YKFacebook:1.0.0'
  • 3、在moudle的build文件夹下的android —>defaultConfig 和 android—>buildTypes 下的release 和 debug下面配置 Facebook ID和scheme

    defaultConfig {
    ...
    manifestPlaceholders = [Facebook_app_id         : "xxx",//FacebookID(Facebook申请的ApplicationId)
                            fb_login_protocol_scheme: "xxx"]//FacebookScheme
​    
     }

     buildTypes {
      release {
     ...
     signingConfig signingConfigs.config
      manifestPlaceholders = [Facebook_app_id         :    "xx",//FacebookID(Facebook申请的ApplicationId)
      fb_login_protocol_scheme: "xxx"]//FacebookScheme

    }
    debug {
        signingConfig signingConfigs.config
        manifestPlaceholders = [Facebook_app_id         : "xx",//FacebookID(Facebook申请的ApplicationId)
                                fb_login_protocol_scheme: "xxx"]//FacebookScheme
    }
  }

1、初始化参数说明

参数 类型 是否必须 说明
debug boolean 是否开启debug模式
facebookEnable boolean 是否启用Facebook
mFacebookId String Facebook官网申请的appID
Target int 是否开启Google登录
LoginObject bean 登录配置的参数
OnLoginStateListener Interface 登录回调接口

2、登录调用方式

  • 1、初始化(刚进入应用或者支付页面的时候配置)

    private void init() {
      YKGameOptions options = new YKGameOptions.Builder(this)
              .debug(true)
              .facebook(mFacebookId)
              .facebookEnable()
              .build();
      YKGameSdk.init(options);
    }
    • 2、接口回调(可以写成匿名内部类的方式也可以写成全局方式)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
mOnLoginListener = new OnLoginStateListener() {
@Override
public void onState(Activity activity, LoginResult result) {
if (result.state == LoginResult.STATE_RESULT) {
BaseEntry entry = result.getBaseEntry();
switch (entry.getCode()) {
case YKGameValues.FACEBOOK_LOGIN_SUCCESS: {
Log.e(TAG, "success===" + entry.getResult());
break;
}
case YKGameValues.FACEBOOK_LOGIN_FAILED: {
Log.e(TAG, "failed===" + entry.getResult());
break;
}
case YKGameValues.FACEBOOK_LOGIN_CANCEL: {
Log.e(TAG, "cancel===" + entry.getResult());
break;
}
case YKGameValues.FACEBOOK_LOGIN_OUT: {
Log.e(TAG, "loginOut===" + entry.getResult());
break;
}
}

}

};
  • 3、登录开始
1
2
3
4
LoginObject object = new LoginObject();
object.setFacebookAppID("xxx");//Facebook的ApplicationID
object.setLoginOut(false);//是否清空登录信息重新登录
LoginManager.login(GoogleActivity.this, Target.LOGIN_FACEBOOK, object, mOnLoginListener);
  • 4、退出登录
1
2
3
4
LoginObject object = new LoginObject();
object.setFacebookAppID("xxx");//Facebook的ApplicationID
object.setLoginOut(false);//是否清空登录信息重新登录
LoginManager.login(GoogleActivity.this, Target.LOGIN_FACEBOOK, object, mOnLoginListener);
  • 5、结果码(具体以接口回调结果为准)
  • 1
    2
    3
    4
    5
    6
    7
    8
    //登录成功
    FACEBOOK_LOGIN_SUCCESS
    //登录失败
    FACEBOOK_LOGIN_FAILED
    //取消登录
    FACEBOOK_LOGIN_CANCEL
    //退出登录
    FACEBOOK_LOGIN_OUT

注意:LoginResult 附带有登录结果 result.getResultModel().toString()为具体信息

注意:兼容Android9.0 Http请求的网络请求方式

  • 1、在res目录下创建xml文件夹
  • 2、在xml文件夹下创建network_security_config.xml文件夹
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
  • 3、在清单文件(AndroidManifest)中的Application节点下配置引用
<application
android:networkSecurityConfig="@xml/network_security_config"
/>

QQ 登录说明

注意:如果在project下的build 文件下添加了 远程依赖,请忽略1配置,直接看2和3

  • 1、在project 下的build 导入仓库地址
maven {

 url "https://jitpack.io"
 }
  • 2、在moudle下面的build文件下添加网络库依赖

    implementation 'com.github.muyishuangfeng:YKSDKQQ-Android:1.0.0'
  • 3、在moudle的build文件夹下的android —>defaultConfig 和 android—>buildTypes 下的release 和 debug下面配置 Facebook ID和scheme

    defaultConfig {
    ...
    manifestPlaceholders = [...
                            QQAppID: "xxx"]//QQAppID
​    
     }

     buildTypes {
      release {
     ...
     signingConfig signingConfigs.config
     manifestPlaceholders = [...
                            QQAppID: "xxx"]//QQAppID

    }
    debug {
        signingConfig signingConfigs.config
        manifestPlaceholders = [...
                            QQAppID: "xxx"]//QQAppID
    }
  }

1、初始化参数说明

参数 类型 是否必须 说明
debug boolean 是否开启debug模式
LT-AppID String 每个应用对应的appid
LTAppKey String 每个应用对应的appKey
baseUrl String 根据具体服务器配置
mQQAppID String QQ平台申请的AppID
mAdID String 广告ID(获取方法看文档)
qQEnable boolean 是否开启QQ登录
Target int 是否开启Google登录
loginOut boolean 是否退出登录(true:是,false:否)
OnLoginStateListener Interface 登录回调接口

2、登录调用方式

  • 1、初始化(刚进入应用或者支付页面的时候配置)

    private void init() {
      YKGameOptions options = new YKGameOptions.Builder(this)
              .debug(true)
              .appID(LTAppID)
              .appKey(LTAppKey)
              .baseUrl(baseUrl)
              .setAdID(mAdID)
              .setQQEnable(true)
              .qq(mQQAppID)
              .build();
      YKGameSdk.init(options);
    }
    • 2、接口回调(可以写成匿名内部类的方式也可以写成全局方式)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
OnLoginStateListener mOnLoginListener = new OnLoginStateListener() {
@Override
public void onState(Activity activity, LoginResult result) {
switch (result.state) {
case LoginResult.STATE_SUCCESS:
Log.e(TAG, result.getResultModel().toString());
mTxtResult.setText(result.getResultModel().toString());
break;

case LoginResult.STATE_FAIL:
Log.e(TAG,result.getError().toString());
Log.e(TAG, "STATE_FAIL");
break;
case LoginResult.STATE_CANCEL:
Log.e(TAG, "STATE_FAIL");
break;
case LoginResult.STATE_FAIL:
if (result.getError()!=null){
switch (result.getError().getCode()){
case LTGameError.CODE_PARAM_ERROR:{
Log.e("RESULT123", result.getError().getMsg());
break;
}
case LTGameError.CODE_REQUEST_ERROR:{
Log.e("RESULT123", result.getError().getMsg());
break;
}
case LTGameError.CODE_NOT_SUPPORT:{
Log.e("RESULT123", result.getError().getMsg());
break;
}
}
}
break;

}
}

};
  • 3、登录开始
LoginObject object = new LoginObject();
           object.setBaseUrl(baseUrl);//服务器url
           object.setmAdID(mAdID);//唯一广告ID
           object.setLTAppID(LTAppID);乐推AppID
           object.setLTAppKey(LTAppKey);//乐推AppKey
           object.setQqAppID(mQQAppID);//qq平台申请的AppID
           object.setLoginOut(false);//是否退出,true:是,false:否
           LoginManager.login(QQActivity.this, Target.LOGIN_QQ, object, mOnLoginListener);
  • 4、结果码(具体以接口回调结果为准)

    //开始
    STATE_START
    //成功
    STATE_SUCCESS 
    //失败
    STATE_FAIL
    //取消
    STATE_CANCEL
    //完成
    STATE_COMPLETE 
    //有效
    STATE_ACTIVE 

注意:LoginResult 附带有登录结果 result.getResultModel().toString()为具体信息