Appearance
登录
在未登录的情况下,进行登录,目前支持谷歌,Facebook,qq,微信和游客登录
用户登录:Activity上下文
from:对应 BrickAuthPlatform,为来源于那个平台登录的,目前有谷歌,微信,QQ,Facebook 和 Brick 游客平台
loginResultCallBack:为唤起登录之后的回调,是一个实现 LoginResultCallBack 接口的对象。
extraData:为你想传入服务器的透传数据,是一个 json 字符串,可为空,可不传
kotlin
/**
* 用户登录
* activity: Activity上下文
* from: 来源于哪个平台登录
* loginResultCallBack 调起登录成功之后,从facebook服务获取用户信息是否成功的回调
* extraData:额外可自定义透传的json数据
*/
fun login(
activity: Activity, from: BrickAuthPlatform,
loginResultCallBack: LoginResultCallBack, extraData: String? = null
)方法举例:
kotlin
BrickSDK.login(this, BrickAuthPlatform.Facebook, object : LoginResultCallBack {
override fun onSuccess(result: UserInfo) {
Log.i("MainActivity", "login ${from.from.getPlatformDes()} onSuccess ${result.id}")
Toast.makeText(
this@LoginActivity,
"登陆成功 ${from.from.getPlatformDes()} ${result.id}",
LENGTH_SHORT
).show()
}
override fun onCancel() {
Log.i("MainActivity", "login ${from.from.getPlatformDes()} onCancel")
}
override fun onError(message: String) {
Log.i("MainActivity", "login ${from.from.getPlatformDes()} onError $message")
Toast.makeText(
this@LoginActivity,
"登陆失败 ${from.from.getPlatformDes()}",
LENGTH_SHORT
).show()
}
}, "{\"code\":200,\"message\":\"success\",\"data\":\"guestLogin\"}")recordLogin 记录登录登入
拿到第三方的相关信息之后,你可以调用自己的服务端提供的接口进行登录。但是宝船出海 SDK 平台为了保证用户数据的准确性和一致性,希望你可以在你自己的平台登录成功后,调用宝船出海 SDK 平台的 recordLogin。(此方法仅仅是推荐,不做强制要求)
extraData:为你想传入服务器的透传数据,是一个 json 字符串,可为空,可不传
kotlin
/**
* 记录用户登录
* extraData:额外可自定义透传的json数据
*/
fun recordLogin(extraData: String? = null)方法举例:
kotlin
BrickSDK.recordLogin()recordLogout 记录用户登出
你在退出 app 登录时调用,不做强制要求
kotlin
/**
* 记录用户登出
*/
fun recordLogout()方法举例:
kotlin
BrickSDK.recordLogout()unbindThirdUser 解绑第三方用户
解除与第三方绑定的用户,例如谷歌,facebook 等。服务器将会从数据库中把当前登录账号与当前第三方绑定的账号解除绑定,此时登录账号仍然存在并且登录着
from 第三方的来源
unbindThirdUserCallBack BrickSDKCallback 类,是删除用户操作成功与否的回调。
kotlin
/**
* 解绑第三方绑定的用户信息
* from 第三方的来源
* unbindThirdUserCallBack 删除回调接口
*/
fun unbindThirdUser(
from: BrickAuthPlatform,
unbindThirdUserCallBack: BrickSDKCallback? = null
)方法举例:
kotlin
BrickSDK.unbindThirdUser(BrickAuthPlatform.Google, object : BrickSDKCallback {
override fun onSuccess(result: String?) {
}
override fun onError(message: String) {
}
})getUserBindPlatformList 获取用户已经绑定的第三方登录平台列表
获取用户已经绑定的第三方例如谷歌,facebook 等平台列表
kotlin
/**
* 获取用户已经绑定的第三方登录平台列表
* productListListener 获取商品列表的监听
*/
fun getUserBindPlatformList(bindUserListListener: BrickSDKCallback)方法举例:
kotlin
BrickSDK.getUserBindPlatformList(object : BrickSDKCallback {
override fun onError(error: String) {
Log.i("MainActivity", "getUserBindPlatformList onError $error")
}
override fun onSuccess(data: String?) {
Log.i("MainActivity", "getUserBindPlatformList onSuccess $data")
}
})bindThird 绑定第三方用户
绑定第三方的用户,例如谷歌,facebook 等,之后可以直接使用该第三方进行绑定。
bindThirdCallBack:BrickSDKCallback 类,是绑定用户操作成功与否的回调。
kotlin
/**
* 用户绑定第三方Id
* activity: Activity上下文
* from: 来源于哪个平台登录
* bindThirdCallBack 调起绑定成功之后的回调
* extraData:额外可自定义透传的json数据
*/
fun bindThird(
activity: Activity, from: BrickPlatform,
bindThirdCallBack: BrickSDKCallback, extraData: String? = null
)方法举例:
kotlin
BrickSDK.bindThird(this, from, object : BrickSDKCallback {
override fun onSuccess(result: String?) {
}
override fun onError(message: String) {
}
}, "")api相关
LoginResultCallBack
TIP
说明:它是一个登录相关接口,主要用于登录时返回结果的回调
方法:
onSuccess(result:UserInfo)
当用户登录成功时,调用的方法
result: UserInfo,当登录成功时,返回的用户信息
kotlin
fun onSuccess(result:UserInfo)onCancel()
当用户主动取消登录时,调用的方法
kotlin
fun onCancel()onError(message: String)
在用户登录过程中因为网络,账户等出现问题导致登录失败而回调的方法
message:具体的错误原因
kotlin
fun onCancel()接口实现举例:
kotlin
val loginResultCallBack =object : LoginResultCallBack {
override fun onSuccess(result: UserInfo) {
Toast.makeText(this@MainActivity, "登陆成功 ${result.id}", LENGTH_SHORT).show()
}
override fun onCancel() {
}
override fun onError(message: String) {
Toast.makeText(this@MainActivity, "登陆失败", LENGTH_SHORT).show()
}
}UserInfo
TIP
说明:它是第三方登录或者游客登录成功后返回的用户信息
成员变量
| UserInfo | ||
|---|---|---|
| 变量 | 类型 | 说明 |
| id | 字符串 | 登录成功后宝船后台返回的 ID |
| unionId | 字符串 | 登录成功后 brick 平台返回的联合 Id |
| avatar | 字符串 | 头像 |
| thirdId | 字符串 | 第三方例如谷歌等返回的 Id(此值暂不暴露) |
| nickname | 字符串 | 昵称 |
| email | 字符串 | 邮箱 |
| thirdUnionId | 字符串 | 第三方例如微信等返回的授权 ID 的联合 ID(此值暂不暴露) |
| from | 对应 BrickPlatform 类 | 对应第三方用户信息来源 |
| extraData | 字符串 | 额外的数据 |
LoginDialogBuilder
TIP
说明:它是登录对话框的构造器
构造方法
LoginDialogBuilder(private val activity: Activity,private val onLoginResultCallBack: LoginResultCallBack)
activity: Activity 活动页面的实例
onLoginResultCallBack:LoginResultCallBack,登录后返回登录结果的回调
kotlin
class LoginDialogBuilder(
private val activity: Activity,
private val onLoginResultCallBack: LoginResultCallBack
)setAgreementCallback(mAgreementCallback: AgreementCallback): LoginDialogBuilder
设置用户协议和隐私政策点击回调
mAgreementCallback:AgreementCallback,用户协议和隐私政策点击时的回调对象
kotlin
/**
* 设置用户协议和隐私政策点击回调
*/
fun setAgreementCallback(mAgreementCallback: AgreementCallback): LoginDialogBuildersetExtraData(mExtraData: String): LoginDialogBuilder
设置增加额外透传参数
mExtraData:额外透传参数
kotlin
/**
* 设置增加额外透传参数
*/
fun setExtraData(mExtraData: String): LoginDialogBuildersetLoginDialogWidth(mLoginDialogWidth: Int): LoginDialogBuilder
设置登录框的宽度
mLoginDialogWidth:登录框的宽度
kotlin
/**
* 设置登录框的宽度
*/
fun setLoginDialogWidth(mLoginDialogWidth: Int): LoginDialogBuildersetLoginDialogBgDrawableResourceId(mLoginDialogBgDrawableResourceId: Int): LoginDialogBuilder
设置登录框的背景图片资源 ID
mLoginDialogBgDrawableResourceId:登录框的背景图片资源 ID
kotlin
/**
* 设置登录框的背景图片资源ID
*/
fun setLoginDialogBgDrawableResourceId(mLoginDialogBgDrawableResourceId: Int): LoginDialogBuildersetCloseDrawableResourceId(mCloseDrawableResourceId: Int): LoginDialogBuilder
设置关闭登录框的图片资源 ID
mCloseDrawableResourceId:关闭图片按钮的_资源 ID_
kotlin
/**
* 设置关闭登录框的图片资源ID
*/
fun setCloseDrawableResourceId(mCloseDrawableResourceId: Int): LoginDialogBuildersetCloseDrawableSize(mCloseDrawableSize: Int): LoginDialogBuilder
设置关闭登录框按钮图片的大小
mCloseDrawableSize:关闭按钮图片的大小
kotlin
/**
* 设置关闭登录框按钮图片的大小
*/
fun setCloseDrawableSize(mCloseDrawableSize: Int): LoginDialogBuildersetLogoDrawableResourceId(mLogoDrawableResourceId: Int): LoginDialogBuilder
设置登录框的 logo 的图片资源 ID
mLogoDrawableResourceId:logo 的图片资源 ID
kotlin
/**
* 设置登录框的logo的图片资源ID
*/
fun setLogoDrawableResourceId(mLogoDrawableResourceId: Int): LoginDialogBuildersetTitleText(mTitleText: String): LoginDialogBuilder
设置登录框标题文字
mTitleText:标题文字
kotlin
/**
* 设置登录框标题文字
*/
fun setTitleText(mTitleText: String): LoginDialogBuildersetTitleTextSize(mTitleTextSize: Float): LoginDialogBuilder
设置登录框标题文字大小
mTitleTextSize:标题文字大小
kotlin
/**
* 设置登录框标题文字大小
*/
fun setTitleTextSize(mTitleTextSize: Float): LoginDialogBuildersetTitleTextColor(mTitleTextColor: Int): LoginDialogBuilder
设置登录框标题文字颜色
mTitleTextColor:标题文字颜色
kotlin
/**
* 设置登录框标题文字颜色
*/
fun setTitleTextColor(mTitleTextColor: Int): LoginDialogBuildersetNeedGoogleLogin(mNeedGoogleLogin: Boolean): LoginDialogBuilder
设置是否需要谷歌登录 默认为需要
mNeedGoogleLogin:是否需要谷歌登录
kotlin
/**
* 设置是否需要谷歌登录 默认为需要
*/
fun setNeedGoogleLogin(mNeedGoogleLogin: Boolean): LoginDialogBuildersetGoogleDrawableResourceId(mGoogleDrawableResourceId: Int): LoginDialogBuilder
设置登录框谷歌登录图片资源 ID
mGoogleDrawableResourceId:谷歌登录图片资源 ID
kotlin
/**
* 设置登录框谷歌登录图片资源ID
*/
fun setGoogleDrawableResourceId(mGoogleDrawableResourceId: Int): LoginDialogBuildersetGoogleLabelText(mGoogleLabelText: String): LoginDialogBuilder
设置登录框 Google 登录的标签
mGoogleLabelText:Google 登录的标签
kotlin
/**
* 设置登录框Google登录的标签
*/
fun setGoogleLabelText(mGoogleLabelText: String): LoginDialogBuildersetNeedFacebookLogin(mNeedFacebookLogin: Boolean): LoginDialogBuilder
设置是否需要 Facebook 登录 默认为需要
mNeedFacebookLogin:是否需要 Facebook 登录
kotlin
/**
* 设置是否需要Facebook登录 默认为需要
*/
fun setNeedFacebookLogin(mNeedFacebookLogin: Boolean): LoginDialogBuildersetFacebookDrawableResourceId(mFacebookDrawableResourceId: Int): LoginDialogBuilder
设置登录框 Facebook 登录图片资源 ID
mFacebookDrawableResourceId:Facebook 登录图片资源 ID
kotlin
/**
* 设置登录框Facebook登录图片资源ID
*/
fun setFacebookDrawableResourceId(mFacebookDrawableResourceId: Int): LoginDialogBuildersetFacebookLabelText(mFacebookLabelText: String): LoginDialogBuilder
设置登录框 Facebook 登录的标签
mFacebookLabelText:Facebook 登录的标签
kotlin
/**_
* 设置登录框Facebook登录的标签
*/
fun setFacebookLabelText(mFacebookLabelText: String): LoginDialogBuildersetNeedGuestLogin(mNeedGuestLogin: Boolean): LoginDialogBuilder
设置是否需要游客登录 默认为需要
mNeedGuestLogin:是否需要游客登录
kotlin
/**
* 设置是否需要游客登录 默认为需要
*/
fun setNeedGuestLogin(mNeedGuestLogin: Boolean): LoginDialogBuildersetGuestDrawableResourceId(mGuestDrawableResourceId: Int): LoginDialogBuilder
设置登录框游客登录图片资源 ID
mGuestDrawableResourceId:游客登录图片资源 ID
kotlin
/**
* 设置登录框游客登录图片资源ID
*/
fun setGuestDrawableResourceId(mGuestDrawableResourceId: Int): LoginDialogBuildersetGuestLabelText(mGuestLabelText: String): LoginDialogBuilder
设置登录框游客登录的标签
mGuestLabelText:游客登录的标签
kotlin
/**
* 设置登录框游客登录的标签
*/
fun setGuestLabelText(mGuestLabelText: String): LoginDialogBuildersetLoginImageButtonDrawableSize(mLoginImageButtonDrawableSize: Int): LoginDialogBuilder
设置例如谷歌,facebook,游客等登录按钮图片的大小
mLoginImageButtonDrawableSize:登录按钮图片的大小
kotlin
/**
* 设置例如谷歌,facebook,游客等登录按钮图片的大小
*/
fun setLoginImageButtonDrawableSize(mLoginImageButtonDrawableSize: Int): LoginDialogBuildersetLoginImageButtonLabelTextSize(mLoginImageButtonLabelTextSize: Float): LoginDialogBuilder
设置例如谷歌,facebook,游客等登录按钮字体的大小
mLoginImageButtonLabelTextSize:登录按钮字体的大小
kotlin
/**
* 设置例如谷歌,facebook,游客等登录按钮字体的大小
*/
fun setLoginImageButtonLabelTextSize(mLoginImageButtonLabelTextSize: Float): LoginDialogBuildersetLoginImageButtonLabelTextColor(mLoginImageButtonLabelTextColor: Int): LoginDialogBuilder
设置例如谷歌,facebook,游客等登录按钮字体的颜色
mLoginImageButtonLabelTextColor:登录按钮字体的颜色
kotlin
/**
* 设置例如谷歌,facebook,游客等登录按钮字体的颜色
*/
fun setLoginImageButtonLabelTextColor(mLoginImageButtonLabelTextColor: Int): LoginDialogBuildersetAgreeCheckboxDrawableResourceId(mAgreeCheckboxDrawableResourceId: Int): LoginDialogBuilder
设置登录框用户协议复选框的背景图片
mAgreeCheckboxDrawableResourceId:复选框的背景图片
kotlin
/**
* 设置登录框用户协议复选框的背景图片
*/
fun setAgreeCheckboxDrawableResourceId(mAgreeCheckboxDrawableResourceId: Int): LoginDialogBuildersetAgreeCheckboxSize(mAgreeCheckboxSize: Int): LoginDialogBuilder
设置登录框用户协议复选框的大小
mAgreeCheckboxSize:复选框的大小
kotlin
/**
* 设置登录框用户协议复选框的大小
*/
fun setAgreeCheckboxSize(mAgreeCheckboxSize: Int): LoginDialogBuilder {
}setAgreementTextSize(mAgreementTextSize: Float): LoginDialogBuilder
设置登录框用户协议的文字大小
mAgreementTextSize:用户协议的文字大小
kotlin
/**
* 设置登录框用户协议的文字大小
*/
fun setAgreementTextSize(mAgreementTextSize: Float): LoginDialogBuildersetAgreementText(mAgreementText: SpannableString): LoginDialogBuilder
设置登录框用户协议的文字
mAgreementText:用户协议的文字
kotlin
/**
* 设置登录框用户协议的文字
*/
fun setAgreementText(mAgreementText: SpannableString): LoginDialogBuildersetAgreementTextColor(mAgreementTextColor: Int): LoginDialogBuilder
设置登录框用户协议的文字颜色
mAgreementTextColor:用户协议的文字颜色
kotlin
/**
* 设置登录框用户协议的文字颜色
*/
fun setAgreementTextColor(mAgreementTextColor: Int): LoginDialogBuildersetAgreementTextSelectColor(mAgreementTextSelectColor: Int): LoginDialogBuilder
设置登录框用户协议的文字选中的颜色
mAgreementTextSelectColor:用户协议的文字选中的颜色
kotlin
/**
* 设置登录框用户协议的文字选中的颜色
*/
fun setAgreementTextSelectColor(mAgreementTextSelectColor: Int): LoginDialogBuilderbuild(): LoginDialogBuilder
开始构建登录对话框
kotlin
/**
* 开始构建登录对话框
*/
fun build(): LoginDialogBuildershow():
展示登录对话框
kotlin
fun show()dismiss() : LoginDialogBuilder
消除登录对话框
kotlin
/**
* 消除登录对话框
*/
fun dismiss()实现举例:
kotlin
LoginDialogBuilder(MainActivity@ this, object : LoginResultCallBack {
override fun onSuccess(result: UserInfo) {
Log.i(
"MainActivity",
"onSuccess ${result.id} ${result.from.from} ${result.nickname}"
)
}
override fun onCancel() {
Log.i("MainActivity", "onCancel")
}
override fun onError(message: String) {
Log.i("MainActivity", "onError")
}
})
.setAgreementCallback(object : AgreementCallback {
override fun onUserAgreementClick() {
Log.i("MainActivity", "onUserAgreementClick")
}
override fun onPrivacyPolicyClick() {
Log.i("MainActivity", "onPrivacyPolicyClick")
}
})
//设置额外透传参数(可选)
.setExtraData("{\"code\":10}")
//设置登录框的宽度(可选)
.setLoginDialogWidth(1000)
//设置登录框的背景图片资源ID(可选)
.setLoginDialogBgDrawableResourceId(R.mipmap.img_zhs_login_ban_1)
//设置关闭登录框的图片资源ID(可选)
.setCloseDrawableResourceId(R.mipmap.close)
//设置关闭登录框按钮图片的大小(可选)
.setCloseDrawableSize(80)
//设置登录框的logo的图片资源ID(可选)
.setLogoDrawableResourceId(R.mipmap.img_zhs_login_logo_1)
//设置登录框标题文字(可选)
.setTitleText("LoginDialog")
//设置登录框标题文字大小(可选)
.setTitleTextSize(30f)
//设置登录框标题文字颜色(可选)
.setTitleTextColor(Color.parseColor("333333"))
//设置是否需要谷歌登录 默认为需要(可选)
.setNeedGoogleLogin(true)
//设置登录框谷歌登录图片资源ID(可选)
.setGoogleDrawableResourceId(R.mipmap.btn_zhs_login_google_1)
//设置登录框Google登录的标签(可选)
.setGoogleLabelText("google")
//设置是否需要Facebook登录 默认为需要(可选)
.setNeedFacebookLogin(true)
//设置登录框Facebook登录图片资源ID(可选)
.setFacebookDrawableResourceId(R.mipmap.btn_zhs_login_facebook_1)
//设置登录框Facebook登录的标签(可选)
.setFacebookLabelText("facebook")
//设置是否需要游客登录 默认为需要(可选)
.setNeedGuestLogin(true)
//设置登录框游客登录图片资源ID(可选)
.setGuestDrawableResourceId(R.mipmap.btn_zhs_login_guest_1)
//设置登录框游客登录的标签(可选)
.setGuestLabelText("guest")
//设置例如谷歌,facebook,游客等登录按钮图片的大小(可选)
.setLoginImageButtonDrawableSize(160)
//设置例如谷歌,facebook,游客等登录按钮字体的大小(可选)
.setLoginImageButtonLabelTextSize(24f)
//设置例如谷歌,facebook,游客等登录按钮字体的颜色(可选)
.setLoginImageButtonLabelTextColor(R.color.purple_500)
//设置登录框用户协议复选框的背景图片(可选)
.setAgreeCheckboxDrawableResourceId(R.drawable.item_protocol_1)
//设置登录框用户协议复选框的大小(可选)
.setAgreeCheckboxSize(100)
//设置登录框用户协议的文字大小(可选)
.setAgreementTextSize(20f)
//设置登录框用户协议的文字颜色(可选)
.setAgreementText(SpannableString("您的内容"))
//设置登录框用户协议的文字选中的颜色(可选)
.setAgreementTextColor(Color.parseColor("#FF3E8DF7"))
//设置登录框用户协议的文字选中的颜色(可选)
.setAgreementTextSelectColor(R.color.blue)
//开始构建登录对话框(可选)
.build()
//展示登录对话框(可选)
.show()AgreementCallback
TIP
说明:它是用户协议和隐私政策控件被点击 1 时的回调
方法:
onUserAgreementClick()
用户协议被点击时调用
kotlin
fun onUserAgreementClick()onPrivacyPolicyClick()
隐私政策被点击时调用
kotlin
fun onPrivacyPolicyClick()接口实现举例:
kotlin
val AgreementCallback= object : AgreementCallback {
override fun onUserAgreementClick() {
}
override fun onPrivacyPolicyClick() {
}
}BrickAuthPlatform
TIP
说明:它表示登录平台来源是哪一个,目前微信,facebook,qq,google,brickSDK游客,brickSDK平台
成员变量
| BrickAuthPlatform | ||
|---|---|---|
| 变量 | 类型 | 说明 |
| from | BrickPlatform | 来源实际平台 |
枚举表
| 平台类型 | 值 | 说明 |
|---|---|---|
| BrickGuest | BrickGuest | brick平台游客 |
| Brick | Brick | 微信brick平台会话 |
| Google | Google | 谷歌 |
| Facebook | Facebook | Facebook |
| WeiXin | WeiXin | 微信 |
| QQ | QQ | qq |