Добавление кнопки Войти по Сбер ID
Инициализация SDK в методе AppDelegate
При старте вашего мобильного приложения необходмо инициализировать SDK в методе AppDelegate:
import SberIdSDK
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
SIDManager.initSberID(clientId: "clientId")
...
return true
}
Добавление кнопки
При старте вашего мобильного приложения необходмо передать значение вашего clientID. Данный ID будет использоваться во всех процессах авторизации и работе методов SDK
Swift
import SberIdSDK
.
.
.
SIDManager.setClientID("clientId")
- Импортируйте модуль SberIdSDK.
- Swift
- Objective C
import SberIdSDK
@import SberIdSDK;
- Создайте кнопку и добавьте ее на view.
- Swift
- Objective C
// Инициализаторы для создания кнопки:
/// Инициализатор создаст кнопку по стилистическому гайду Сбербанка с заданными размерами и выбранным заголовком
/// - Parameters:
/// - type: стиль кнопки
/// - textType: вариант текста
/// - desiredSize: желаемые высота и ширина
/// - observer: наблюдатель состояния кнопки
init(type: LoginButtonStyle,
textType: LoginButtonTextType,
desiredSize: CGSize,
observer: LoginButtonObserverProtocol? = nil) {}
/// Инициализатор создаст кнопку только по выбранному стилю
/// - Parameters:
/// - type: стиль кнопки
/// - observer: наблюдатель состояния кнопки
init(type: LoginButtonStyle,
observer: LoginButtonObserverProtocol? = nil) {}
// Пример:
let loginButton = SIDLoginButton(type: .white)
loginButton.addTarget(self, action: #selector(loginButtonDidTap(_:)), for: .touchUpInside)
view.addSubview(loginButton)
// Инициализаторы для создания кнопки:
/// Инициализатор создаст кнопку по стилистическому гайду Сбербанка с заданными размерами и выбранным заголовком
/// params:
/// type: стиль кнопки
/// textType: вариант текста
/// desiredSize: желаемые высота и ширина
/// observer: наблюдатель состояния кнопки
- (nonnull instancetype)initWithType:(enum LoginButtonStyle)
textType:(enum LoginButtonTextType)
desiredSize:(CGSize)
observer:(id<LoginButtonObserverProtocol> _Nullable) {}
/// Инициализатор создаст кнопку только по выбранному стилю
/// type: стиль кнопки
/// observer: наблюдатель состояния кнопки
- (nonnull instancetype)initWithType:(enum LoginButtonStyle)
observer:(id<LoginButtonObserverProtocol> _Nullable) {}
// Пример:
SIDLoginButton *loginButton = [[SIDLoginButton alloc] initWithType:LoginButtonStyleGreen observer:nil];
[loginButton addTarget:self action:@selector(loginButtonDidTap:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:loginButton];
Кастомизация кнопки
Возможные вариации кнопки, а также рекомендуемые размеры можно найти в гайдбуке по кнопке авторизации
Стили
Стиль устанавливается при инициализации кнопки Sber ID:
Варианты текста
По умолчанию текст — «Войти по Сбер ID»
LoginButtonTextType.short // "Сбер ID"
LoginButtonTextType.general // "Войти по Сбер ID"
LoginButtonTextType.filling // "Заполнить со Сбер ID"
LoginButtonTextType.pursue // "Продолжить со Сбер ID"
Установить вариант текста можно при инициализации кнопки Sber ID. Установка собственного текста, шрифта, цвета текста не поддерживается.
Тексты поддерживают английскую локализацию на устройстве. При выборе локализации, отличной от русской и английской, тексты будут на русском.
В примере кнопки с текстом "Сбер ID" и “Sber ID” отрисована с минимально допустимой шириной.
Степень скругления кнопки (по умолчанию .normal)
Установить степень скругления кнопки можно с помощью метода кнопки setCornerRadius(_ radiusStyle: CornerRadiusStyle)
. При необходимости можно установить свои параметры через стандартный метод UIButton
- SIDLoginButton().layer.cornerRadius
.
Обводка
В случае установки типа кнопки "white" есть возможность указать значение цвета обводки. Для этого установите конкретный цвет через метод кнопки setBorderColor(_ color: UIColor)
.
Управление статусом загрузки
Начиная с версии SDK 1.3.5 появилась возможность вручную программно управлять статусом загрузки в кнопке (анимированное лого СберБанка, как в разделе Персонализация кнопки).
Это может быть полезно, если перед тем, как дать возможность пользователю нажать на кнопку, вам необходимо, например, сделать запрос на сервер и получить oidc-параметры для авторизации по Сбер ID. Либо уже после запуска авторизации дождаться результата ее выполнения.
Установка или снятие статуса загрузки вручную и персонализация кнопки не связаны друг с другом. Если персонализация не завершилась до того, как вы сняли статус загрузки, анимация продолжится до ее завершения.
За управление статусом загрузки отвечает свойство isLoaderHidden
объекта кнопки Sber ID SIDLoginButton