| Поле | Описание |
|---|---|
| scenario | Настройка текста внутри кнопки |
| signInAnotherAccountButtonEnabled | Отображение дополнительной кнопки «Войти в другой аккаунт» |
| style | Стилизация кнопки |
| fastAuthEnabled | Отключение быстрой авторизации |
| onAuthCode | Callback-метод, который вызывается при успешной аутентификации. В callback передается авторизационный код, который нужен для обмена на токены. Подробнее |
| onAuth | Callback-метод, который вызывается при успешной авторизации |
| onFail | Callback-метод, который вызывается при неуспешной авторизации |
| authParams | Параметр, через который в конфигурацию OneTap передаются доступы. Используется для получения данных пользователя. |
| oAuths | Подключение дополнительных способов входа |
dependencies {
implementation("com.vk.id:onetap-compose:${sdkVersion — указывается последняя версия SDK, смотрите номер версии в начале страницы}")
}@Composable
fun ScreenWithVKIDButton() {
OneTap(
onAuth = { /*...*/ }
)
}| Класс | Сценарий | Текст в авторизованной зоне | Текст в неавторизованной зоне | Описание |
|---|---|---|---|---|
| SignIn | Продолжить | Продолжить как имя пользователя | Войти с VK ID | Сценарий по умолчанию |
| SignUp | Записаться | Записаться как имя пользователя | Записаться c VK ID | Для сервисов сферы услуг и образовательных |
| Get | Получить | Получить для имя пользователя | Получить с VK ID | Для кейсов со скидкой или бонусом |
| Open | Открыть | Открыть как имя пользователя | Открыть с VK ID | Для финансовой сферы — например, чтобы открыть счёт, карту или вклад |
| Calculate | Рассчитать | Рассчитать для имя пользователя | Рассчитать с VK ID | Для финансовой сферы и сложных продуктов — например, стоимость проекта, ипотека |
| Order | Заказать | Заказать как имя пользователя | Заказать с VK ID | Для корзин в e-commerce |
| PlaceOrder | Оформить заказ | Оформить заказ как имя пользователя | Оформить с VK ID | Для корзин в e-commerce, альтернативный текст |
| SendRequest | Оставить заявку | Оставить заявку как имя пользователя | Оставить заявку c VK ID | Для e-commerce и сервисов, где требуется оставить заявку на участие |
| Participate | Участвовать | Участвовать как имя пользователя | Участвовать c VK ID | Для образовательных проектов и участия в тендерах |
OneTap(
...
scenario = OneTapTitleScenario.SignUp,
)OneTap(
onAuth = { /*...*/ },
signInAnotherAccountButtonEnabled = true
)| Название класса | Описание |
|---|---|
| OneTapStyle | Класс, который определяет стиль кнопки. Возможные значения:
|
@Composable
fun ScreenWithVKIDButton() {
OneTap(
style = OneTapStyle.Light(
cornersStyle = OneTapButtonCornersStyle.Custom(2f),
sizeStyle = OneTapButtonSizeStyle.SMALL_32,
elevationStyle = OneTapButtonElevationStyle.Custom(4f)
)
)
}OneTap(
...
fastAuthEnabled = false,
)@Composable
fun ScreenWithVKIDButton() {
OneTap(onAuth = { oAuth, token ->
// Использование токена.
})
}@Composable
fun ScreenWithVKIDButton() {
OneTap(onFail = { oAuth, fail ->
when (fail) {
is VKIDAuthFail.Canceled -> TODO()
is VKIDAuthFail.FailedApiCall -> TODO()
is VKIDAuthFail.FailedOAuthState -> TODO()
is VKIDAuthFail.FailedRedirectActivity -> TODO()
is VKIDAuthFail.NoBrowserAvailable -> TODO()
}
})
}| Поле | Описание |
|---|---|
| vkid_onetapScenario | Настройка текста внутри кнопки |
| vkid_onetapShowSignInToAnotherAccount | Отображение дополнительной кнопки «Войти в другой аккаунт» |
| vkid_onetapStyle | Стилизация кнопки |
| vkid_onetapFastAuthEnabled | Отключение быстрой авторизации |
| vkid_onetapScopes | Параметр, через который в конфигурацию OneTap передаются доступы. Используется для получения данных пользователя. |
| vkid_onetapOAuths | Подключение дополнительных способов входа |
| Поле | Описание |
|---|---|
| scenario | Настройка текста внутри кнопки |
| isSignInToAnotherAccountEnabled | Отображение дополнительной кнопки «Войти в другой аккаунт» |
| style | Стилизация кнопки. |
| fastAuthEnabled | Отключение быстрой авторизации |
| authParams | Параметр, через который в конфигурацию OneTap передаются доступы. Используется для получения данных пользователя. |
| oAuths | Подключение дополнительных способов входа |
dependencies {
implementation("com.vk.id:onetap-xml:${sdkVersion — указывается последняя версия SDK, смотрите номер версии в начале страницы}")
}<com.vk.id.onetap.xml.OneTap
android:layout_width="300dp"
android:layout_height="wrap_content"
/>| Класс | Сценарий | Текст в авторизованной зоне | Текст в неавторизованной зоне | Описание |
|---|---|---|---|---|
| SignIn | Продолжить | Продолжить как имя пользователя | Войти с VK ID | Сценарий по умолчанию |
| SignUp | Записаться | Записаться как имя пользователя | Записаться c VK ID | Для сервисов сферы услуг и образовательных |
| Get | Получить | Получить для имя пользователя | Получить с VK ID | Для кейсов со скидкой или бонусом |
| Open | Открыть | Открыть как имя пользователя | Открыть с VK ID | Для финансовой сферы — например, чтобы открыть счёт, карту или вклад |
| Calculate | Рассчитать | Рассчитать для имя пользователя | Рассчитать с VK ID | Для финансовой сферы и сложных продуктов — например, стоимость проекта, ипотека |
| Order | Заказать | Заказать как имя пользователя | Заказать с VK ID | Для корзин в e-commerce |
| PlaceOrder | Оформить заказ | Оформить заказ как имя пользователя | Оформить с VK ID | Для корзин в e-commerce, альтернативный текст |
| SendRequest | Оставить заявку | Оставить заявку как имя пользователя | Оставить заявку c VK ID | Для e-commerce и сервисов, где требуется оставить заявку на участие |
| Participate | Участвовать | Участвовать как имя пользователя | Участвовать c VK ID | Для образовательных проектов и участия в тендерах |
findViewById<OneTap>(R.id.vkidButton).scenario = OneTapTitleScenario.SignUp<com.vk.id.onetap.xml.OneTap
...
app:vkid_onetapScenario="SignUp" /><com.vk.id.onetap.xml.OneTap
...
app:vkid_onetapShowSignInToAnotherAccount="true" />findViewById<OneTap>(R.id.vkidButton).isSignInToAnotherAccountEnabled = truefun onCreate(/* ... */) {
findViewById<OneTap>(R.id.vkidButton).style = OneTapStyle.Light(
cornersStyle = OneTapButtonCornersStyle.Custom(2f),
sizeStyle = OneTapButtonSizeStyle.SMALL_32,
elevationStyle = OneTapButtonElevationStyle.Custom(4f)
)
}| Название | Описание |
|---|---|
| light | Светлая тема |
| dark | Тёмная тема |
| system | Системная тема, меняется между light и dark в зависимости от системных настроек оформления в телефоне |
| secondaryLight | Светлая тема с белым фоном кнопки |
| secondaryDark | Тёмная тема с белым фоном кнопки |
| secondarySystem | Второстепенная тема с белым фоном, меняется между secondaryLight и secondaryDark в зависимости от системных настроек оформления в телефоне |
| icon | Кнопка в виде квадратной иконки |
<com.vk.id.onetap.xml.OneTap
android:layout_width="355dp"
android:layout_height="wrap_content"
app:vkid_onetapStyle="secondaryDark"
app:vkid_buttonsCornerRadius="8dp"
app:vkid_buttonsSize="small32"
app:vkid_onetapShowSignInToAnotherAccount="true" /><com.vk.id.onetap.xml.OneTap
app:vkid_onetapFastAuthEnabled="false" />findViewById<OneTap>(R.id.vkidButton).fastAuthEnabled = falsefun onCreate(/* ... */) {
findViewById<OneTap>(R.id.vkidButton).setCallbacks(
onAuth = { oAuth, token -> /* Использование токена */ }
)
}fun onCreate(/* ... */) {
findViewById<OneTap>(R.id.vkidButton).setCallbacks(
onFail = { oAuth, fail ->
when (fail) {
is VKIDAuthFail.Canceled -> TODO()
is VKIDAuthFail.FailedApiCall -> TODO()
is VKIDAuthFail.FailedOAuthState -> TODO()
is VKIDAuthFail.FailedRedirectActivity -> TODO()
is VKIDAuthFail.NoBrowserAvailable -> TODO()
}
}
)
}OneTap(
...
authParams = VKIDAuthUIParams {
scopes = setOf("phone", "email")
}
)OneTap(
...
oAuths = seOf(OneTapOAuth.Mail, OneTapOAuth.OK)
)OneTap(
...
onAuth = { oAuth, token -> when (oAuth) { ... } },
onFail = { oAuth, fail -> when (oAuth) { ... } }
)<com.vk.id.onetap.xml.OneTap
android:layout_width="300dp"
android:layout_height="wrap_content"
app:vkid_onetapOAuths="mail,ok"
/>findViewById<OneTap>(R.id.vkidButton).oAuths = setOf(OneTapOAuth.MAIL, OneTapOAuth.OK)findViewById<OneTap>(R.id.vkidButton).setCallbacks(
onAuth = { oAuth, token -> when (oAuth) { ... } },
onFail = { oAuth, fail -> when (oAuth) { ... } }
)