用户相关API
用户体系相关的接口只需要通过一行代码调用,其它的都放在SDK中完成,返回结果在BadamUserListener监听回调中去取UserBean对象。
- BadamUserListener 回调描述如下:
public interface BadamUserListener {
/**
* 与服务器通信完成的回调
* @param userBean 不为null表示成功, 否则失败
* @param errorCode 错误码,具体查看接入文档中的错误代码所代表的实际含义
* @param message 错误提示
*/
void onUserResult(UserBean userBean, int errorCode, String message);
}
3.1.1 普通原生接口
根据客户端需求,SDK做了两个入口:普通入口和快速登录入口,普通入口有登录和注册页面;快速登录入口没有界面,点击直接进入。普通入口适合重度游戏,强调用户注册登录的应用场景;快速登录入口适合休闲类的小游戏,不强调用户登录注册,希望用户进入游戏就可以直接上手玩儿的。CP在接入的时候根据实际需求自行选择一种接入方式即可。
普通入口
BadamSdk.getInstance().enterBadamSdk(Activity activity, BadamUserListener listener);
快速登录入口
BadamSdk.getInstance().quickLoginBadamSdk(Activity activity, BadamUserListener listener);
参数说明:
- activity 上下文环境, activity
- listener 回调, {@link BadamUserListener} 实例
3.1.2 可接H5游戏的接口
为了方便在Android原生应用中接入H5小游戏,我们提供了一套接口,与上面的接口的唯一区别就是增加了一个APPID,同样的分为普通入口和快速登录入口,根据实际情况接入。
普通入口
BadamSdk.getInstance().enterBadamSdkSub(Activity activity, String appId, BadamUserListener listener);
快速登录入口
BadamSdk.getInstance().quickLoginBadamSdkSub(Activity activity, String appId,BadamUserListener listener);
参数说明:
- activity 上下文环境, activity
- appId 应用标识,平台申请的时候下发的
- listener 回调, {@link BadamUserListener} 实例
3.1.3 悬浮窗
悬浮窗是用户体系的入口,在用户登录完成进入客户端之后为用户提供绑定手机号等交互操作。
3.1.3.1 显示悬浮窗
A、登录成功显示
登录成功后,进入主页面显示悬浮窗,操作如下:
BadamSdk.getInstance().showWindow(Activity activity, String gameAppId,
BadamUserListener listener);
参数说明:
- activity 上下文环境, activity
- gameAppId 应用标识,平台申请的时候下发的
- listener 回调, {@link BadamUserListener} 实例
B、后台切换回来显示
切换到Home或者其他应用,再切换回来后显示,操作如下:
@Override
protected void onResume() {
super.onResume();
if(mUser != null){
BadamSdk.getInstance().showWindow(this);
}
}
这个时候需要判断当前帐号还是否存在。
3.1.3.2 隐藏悬浮窗
退出游戏时调用隐藏悬浮窗
BadamSdk.getInstance().hideWindow(Activity activity);
操作如下:
@Override
protected void onPause() {
mPayInterface.onPause(this);
BadamSdk.getInstance().hideWindow(this);
super.onPause();
}
@Override
protected void onDestroy() {
if(!isFinishing()){
BadamSdk.getInstance().hideWindow(this);
}
super.onDestroy();
}
3.1.4 账号切换
切换帐号时会跳转到账号列表登录页面,用户选择需要的操作,完成操作后,SDK会返回相对应的回调。
BadamSdk.getInstance().toAccountSwitchActivity(Activity activity,
BadamUserListener listener);
参数说明:
- activity 上下文环境, activity
- listener 回调, {@link BadamUserListener} 实例
说明:
切换成功之后,可以收到相对应的回调,然后CP根据收到的回调更新对应的用户信息;
3.1.5 更新用户角色
客户端在角色信息发生改变时(比如等级升高等)需要上报角色信息,此时就需要调用该接口,具体调用如下:
3.1.5.1 方法说明
BadamSdk.getInstance().addRole(Context context, String appId, String openId,
String name, String area, String roleId, int level);
更新角色信息时需要提供的参数及其意义请参考下表:
- context: 上下文
- appId: 应用APPID
- openid: 用户唯一标识,登录或注册成功后SDK会返回;
- name:角色名称,当前游戏的角色名称;
- area:游戏区服,当前游戏所在哪一区的服务;
- roleId:角色ID;
- level:角色等级,当前游戏角色等级,数据类型为[整型];
3.1.6 上报启动日活
为了统计游戏日活,单独写了一个上报日活的接口;
BadamSdk.getInstance().addActive(Context context, String appId, String openId);
参数说明:
- context: 应用的上下文;
- appId: 用户ID;
- openId: 用户openId,可以为空;
3.1.7 通过token的方式登录
通过token登录,这种方式主要应用场景是一个主应用关需要再关联一个子应用;
BadamSdk.getInstance().loginByToken(final Activity activity,
String openId, String token, final String subAppId, int ts,
String sign, BadamUserListener listener);
参数说明:
- activity 上下文环境, activity
- openId 用户的 openId
- token 用户的 token
- subAppId 子 APP_ID / 登录的应用
- ts 时间搓
- sign 签名
- listener 回调, {@link BadamUserListener} 实例
3.1.8更新用户信息(带界面,主要是更新头像和昵称)
为了方便CP,SDK特意提供了一个修改用户头像和昵称的界面,修改完直接返回结果,具体接口如下:
BadamSdk.getInstance().upateUserInfo(Activity activity, BadamUserListener listener);
参数说明:
- activity 上下文环境, activity
- listener 回调, {@link BadamUserListener} 实例
3.1.9更新用户信息中的某个字段属性(不带界面)
因为不清楚CP还需要修改除了头像和昵称之外的其他字段,所以另外提供了一个不带界面的修改用户信息的接口,如下:
BadamSdk.getInstance().updateAccountInfo(Activity activity,
String openId, String token, String icon, String nickName,
final BadamListener listener);
参数说明:
- activity 上下文环境, activity
- openId 用户的 openId
- token 用户的 token
- icon 用户的头像连接地址
- nickName 用户的昵称
- listener 回调, {@link BadamListener} 实例