ym88659208ym87991671
Добавление кнопки Войти по Сбер ID | Документация для разработчиков

Добавление кнопки Войти по Сбер ID

Обновлено 30 мая 2024

Добавление кнопки Войти по Сбер ID

Добавление в xml разметке

import sberid.sdk.auth.view.SberIDButton

<sberid.sdk.auth.view.SberIDButton
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

Кнопка автоматически устанавливает иконку Сбербанка, текст, шрифт, цвет по указанным в атрибутах значениям либо значениями по умолчанию. Высота кнопки органичена интервалом 28dp-64dp, при установке высоты, выходящей за пределы интервала, высота будет автоматически приведена в соответствующей границе. Ширина кнопки имеет минимальное значение, исходя из размеров выбранного текста, логотипа и отступов. Максимальная ширина кнопки не ограничена.

при установке ширины кнопки менее минимально допустимой величины будет выполнена попытка приведения ширины кнопки к минимально допустимой. При этом в логи будет выведена ошибка с указанием расчетного и фактического значений в dp, просьба обращать на это внимание. Найти ошибку в логах можно по тэгу SberIDButtonWidthError

Вам остается только добавить:

  • параметры положения кнопки;
  • отступы;

Подробную информацию о стиле кнопок вы найдете в руководстве по дизайну Сбер ID.

Пример объявления кнопки с дизайном по умолчанию (способ размещения кнопки в контейнере зависит от реализации вашей разметки)

<sberid.sdk.auth.view.SberIDButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="36dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>

Добавление через конструктор

Начиная с версии 2.4.0 появилась возможность создавать кнопку через конструктор, без xml. Данный способ актуален для партнеров, которые используют мультиплатформенные фреймворки, например Flutter.

val sberIDButton = SberIDButton(
context = this,
sberIDButtonModel = SberIDButtonModel(
width = 120, // размер кнопки в dp
height = 40, // размер кнопки в dp
type = ButtonType.DEFAULT_TYPE, // тип кнопки, Enum класс ButtonType
text = ButtonText.LOGIN_SHORT, // текст кнопки, Enum класс ButtonType
cornerRadius = 4, // скругление кнопки в dp
strokeColor = Color.rgb(76, 76, 76), //цвет граней для белой кнопки
buttonLoader = false // нужно ли отображать загрузку со старта
)
)

:::caution
В старых версиях нужно было передавать в кнопку clientId, теперь это делать не нужно.
Смотри [Инициализация SDK Сбер ID](/ru/sberid/sdk/androidsdk/init-sdk)
:::

// Описание Enum класса для типа кнопки
ButtonType {
DEFAULT_TYPE, // Зеленная кнопка,
WHITE_TYPE // Белая кнопка
}

// Описание Enum класса для текста кнопки
ButtonText {
LOGIN_SHORT, // Сбер ID,
CONTINUE, // Продолжить cо Сбер ID
FILL // Заполнить cо Сбер ID
}

//Далее добавляем ее в ирархию виджетов
container.addView(sberIDButton)

Кастомизация кнопки

Тип

По умолчанию используется стандартный вид кнопки:

Скриншот кнопки

Для изменения стиля кнопки, укажите параметр в xml кнопки app:buttonType="значение из списка".

Скриншот кнопки

Значение 'white_type соответствует белой кнопке с серой обводкой:

Скриншот кнопки

Обводка

В случае установки типа кнопки "white_type" есть возможность переопределить значение цвета обводки для соответствия вашему дизайну, если на экране присутствует несколько однотипных  кнопок.

Для этого установите конкретный цвет через атрибут кнопки app:buttonStrokeColor="@color/..."

При установке цвета обводки для стандартной зеленой кнопки значение будет проигнорировано.

Скриншот кнопки 2

Скругление

Для изменения скругления кнопки, укажите параметр в xml кнопки app:buttonCornerRadius="значение_dp". Предопределенные значения "corner_small" и "corner_large" соответствуют 4 и 32 dp соответственно. Есть возможность указать здесь собственное значение радиуса скругления в dp.

Скриншот кнопки 3
Скриншот кнопки 4

Текст

Для изменения текста кнопки, укажите параметр в xml кнопки app:buttonText="значение из списка".

Скриншот кода 2

Соответствие значений:

login → Войти по Сбер ID

login_short → Сбер ID

continue_on → Продолжить по Сбер ID

fill → Заполнить по Сбер ID

Значение по умолчанию - Войти по Сбер ID. Установка собственного текста, шрифта, цвета текста не поддерживается.

  • allCaps всегда выключен (т.е. текст не будет заглавными буквами);
  • тексты поддерживают английскую локализацию на устройстве. При выборе локализации, отличной от русской и английской, тексты будут на русском.
Скриншот кнопки 5
  • В примере кнопка с текстом "Сбер ID" отрисована с минимально допустимой шириной
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.