Интеграция кнопки входа
Для успешной интеграции кнопки входа Сбер ID, следуйте пошаговой инструкции, начиная с создания и настройки кнопки, заканчивая обработкой действий пользователя.
Возможные вариации кнопки, а также рекомендуемые размеры можно найти в гайдбуке по кнопке авторизации
Создание и настройка кнопки
1. Создание кнопки
Выберите подходящий стиль и текст для кнопки, используя перечисления SIDLoginButtonStyle
и SIDLoginButtonTextType
. Создайте экземпляр кнопки, указав необходимые параметры.
- Swift
- Objective C
// Создание кнопки с заданным стилем и наблюдателем
let loginButton = SIDLoginButton(type: .green, observer: observer)
// Создание кнопки с дополнительными настройками
let loginButtonCustom = SIDLoginButton(type: .white,
textType: .short,
desiredSize: CGSize(width: 200, height: 50),
observer: observer)
// Создание кнопки с заданным стилем и наблюдателем
SIDLoginButton *loginButton = [[SIDLoginButton alloc] initWithType:SIDLoginButtonStyleGreen observer:observer];
// Создание кнопки с дополнительными настройками
SIDLoginButton *loginButtonCustom = [[SIDLoginButton alloc] initWithType:SIDLoginButtonStyleWhite
textType:SIDLoginButtonTextTypeShort
desiredSize:CGSizeMake(200, 50)
observer:observer];
Тексты поддерживают английскую локализацию на устройстве. При выборе локализации, отличной от русской и английской, тексты будут на русском.
2. Кастомизация внешнего вида
SDK включает методы для настройки внешнего вида кнопки, позволяя выбрать предпочтительные визуальные настройки из доступных вариантов.
Cкругление углов и цвет обводки кнопки (для белой кнопки)
- Swift
- Objective C
loginButton.setCornerRadius(.normal)
[loginButton setCornerRadius:SIDCornerRadiusStyleNormal];
Установка цвета обводки для белой кнопки
- Swift
- Objective C
if loginButton.style == .white {
loginButton.setBorderColor(.green)
}
if (loginButton.style == SIDLoginButtonStyleWhite) {
[loginButton setBorderColor:[UIColor greenColor]];
}
Управление лоадером на кнопке
Используйте свойство isLoaderHidden
для управления отображением лоадера на кнопке "Войти по Сбер ID". По умолчанию лоадер не отображается (true
). Измените это свойство, чтобы показать или скрыть лоадер в зависимости от необходимости. Включение лоадера может быть полезно при ожидании завершения операций, требующих времени, например, при авторизации пользователя.
- Swift
- Objective C
// Показать лоадер
loginButton.isLoaderHidden = false
// Скрыть лоадер
loginButton.isLoaderHidden = true
// Показать лоадер
loginButton.isLoaderHidden = NO;
// Скрыть лоадер
loginButton.isLoaderHidden = YES;
Персонализация кнопки
Функционал персонализации кнопки "Войти по Сбер ID" временно недоступен из-за текущих ограничений платформы.
3. Наблюдение за состоянием кнопки
В SDK работает механизм оповещений о выпуске новых версий. Эта функциональность автоматически информирует разработчиков о необходимости обновления до последней версии, чтобы обеспечить стабильность работы и доступ к новым функциям.
Важно: При обнаружении критической необходимости обновления (например, устаревшая версия SDK в вашем приложении), кнопка входа через Сбер ID может быть автоматически скрыта для предотвращения возможных проблем в процессе авторизации.
Реагирование на скрытие кнопки
Для обработки ситуаций, когда кнопка входа скрыта (например, при критической необходимости обновления SDK), рекомендуется использовать специальный механизм обратного вызова:
- При инициализации кнопки SIDLoginButton в качестве параметра
observer
передайте объект, который реализует протокол LoginButtonObserverProtocol. - Реализуйте метод
loginButtonWasHidden()
этого протокола, чтобы определить логику вашего приложения при скрытии кнопки (например, отображение уведомления для пользователя или скрытие элементов интерфейса).
- Swift
- Objective C
class LoginButtonObserver: SIDLoginButtonObserverProtocol {
func loginButtonWasHidden() {
// Здесь может быть ваш код для обработки скрытия кнопки
}
}
let sberIdButton = SIDLoginButton(type: .white,
textType: .short,
clientId: "clientId",
desiredSize: CGSize(),
observer: SIDLoginButtonObserver())
@interface LoginButtonObserver : NSObject <SIDLoginButtonObserverProtocol>
@end
@implementation LoginButtonObserver
- (void)loginButtonWasHidden {
// Здесь может быть ваш код для обработки скрытия кнопки
}
@end
SIDLoginButton *sberIdButton = [[SIDLoginButton alloc] initWithType:LoginButtonStyleWhite
textType:LoginButtonTextTypeShort
clientId:@"clientId"
desiredSize:CGSizeZero
observer:[SIDLoginButtonObserver new]];