Appearance
登录
概述
借助宝船 SDK 平台接入 各个平台的登录,你可以在你的应用中快速轻松地实现登录功能。
应用接入
- 如果您的应用没有继承 Applicaton 的类,请创建该类,如若已有实现类,则在应用的 Applicaton 继承类中添加如下方法:
kotlin
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
val config = BrickConfig()
//是否打印日志,可选
config.logEnable = true
//app的业务Id,可以为空,可以为包名或者其他
config.bindUid ="cc.xxxx.demo"
BrickSDK.initBrick(
this,
"cdshf8dfbshdf8sdfc",//宝船出海SDK应用创建后,平台生成的key
"sdjncvs889347r983274cvhsd",config //宝船出海SDK应用创建后,平台生成的秘钥
)
}
}涉及方法与具体说明
- BrickSDK.initBrick 方法具体说明请点击 initBrick 查看。
- 打开
/app/manifest/AndroidManifest.xml文件,在里面同步引用上一步创建的 MyApplication
xml
<application
android:name="您的包名和路径.MyApplication"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/logo"
android:label="@string/app_name"
android:roundIcon="@mipmap/logo"
android:supportsRtl="true">
......
</application>用户相关方法和说明
用户登录
您可以在未登录的情况下,进行登录,目前支持谷歌,Facebook,qq,微信和游客登录。以 facebook 为例:
kotlin
......
import cc.k2games.android.brick.core.BrickSDK
import cc.k2games.android.brick.login.LoginResultCallBack
import cc.k2games.android.brick.login.BrickAuthPlatform
import cc.k2games.android.brick.login.UserInfo
......
class MainActivity : Activity() {
......
fun login(){
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\"}")
}
//回调需要
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
BrickSDK.onActivityResult(requestCode, resultCode, data)
}
}涉及方法与具体说明
- BrickSDK.login 方法具体说明请点击 login 查看。
- BrickSDK.onActivityResult 方法具体说明请点击 onActivityResult 查看。
PS: BrickSDK.onActivityResult方法为必须的,否则无法进行登录,请务必调用此方法。
记录登录
拿到 id 和 google 的相关信息之后,您可以调用自己的服务端提供的接口进行登录。但是宝船出海 SDK 平台为了保证用户数据的准确性和一致性,希望您可以在您自己的平台登录成功后,调用宝船出海 SDK 平台的 recordLogin。(此方法仅仅是推荐,不做强制要求)。调用方法如下:
bash
BrickSDK.recordLogin()涉及方法与具体说明
- BrickSDK.recordLogin 方法具体说明请点击 recordLogin 查看。
记录登出
当用户退出登录时,宝船出海 SDK 为了保证数据的即时性和准确定,希望您能调用宝船出海 SDK 提供的 recordLogout 方法,告知您的退出登录操作。(此方法仅仅是推荐,不做强制要求)。调用方法如下:
kotlin
BrickSDK.recordLogout()涉及方法与具体说明
- BrickSDK.recordLogout 方法具体说明请点击 recordLogout 查看。
解绑第三方用户
解除与第三方绑定的用户,例如谷歌,facebook 等。服务器将会从数据库中把当前登录账号与当前第三方绑定的账号解除绑定,此时登录账号仍然存在并且登录着。调用方法如下:
kotlin
BrickSDK.unbindThirdUser(BrickAuthPlatform.Google, object : BrickSDKCallback {
override fun onSuccess(result: String?) {
}
override fun onError(message: String) {
}
})涉及方法与具体说明
- BrickSDK.unbindThirdUser 方法具体说明请点击 unbindThirdUser 查看。
获取用户已经绑定的第三方登录平台列表
获取用户已经绑定的第三方例如谷歌,facebook 等平台列表。调用方法如下:
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")
}
})涉及方法与具体说明
- BrickSDK.getUserBindPlatformList 方法具体说明请点击 getUserBindPlatformList 查看。
拉起企业微信客服页面
直接转跳到企业微信客服页面,进行客服对话。调用方法如下:
kotlin
BrickSDK.openCustomerServiceChat(
"wwxxxx9636 ",
"https://work.weixin.qq.com/kfid/sssssss",
object : BrickSDKCallback {
override fun onError(error: String) {
}
override fun onSuccess(data: String?) {
}
})涉及方法与具体说明
- BrickSDK.openCustomerServiceChat 方法具体说明请点击 openCustomerServiceChat 查看。
登录对话框
为了更方便您的接入,我们 SDK 中提供了登录对话框,目前对话框中包含了 facebook,google,游客登录,您可以根据您的业务需求选择是否使用该对话框。登录对话框可以高度自定义,并提供了很多可选自定义的方法,您可以改变登录对话框的样式。
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()
涉及方法与具体说明