Для использования основного функционала SDK обратитесь к статическим свойствам класса SID.
Инициализация
Инициализируйте SDK Sber ID при старте вашего приложения. Это позволит загрузить необходимые данные для авторизации еще до их использования.
/// Инициализация ID SDK
/// - Parameters:
/// - stand: Тип стенда (используется для тестирования)
/// - completion: Обработчик событий
SID.initializer.initialize(stand: .prom) { result in
switch result {
case .success:
print("Инициализация прошла успешно")
case .fail:
print("Инициализация завершилась с ошибкой: часть функционала будет недоступна")
case .unknown:
print("Инициализация завершилась с ошибкой: часть функционала будет недоступна")
@unknown default:
print("Инициализация завершилась с ошибкой: часть функционала будет недоступна")
}
}
Для параметра stand доступны следующие значения: .prom (продакшн), .ift, .iftCloud.
/// Инициализация ID SDK
/// - Parameters:
/// - stand: Тип стенда (используется для тестирования)
/// - completion: Обработчик событий
[SID.initializer initializeWithStand:SIDStandTypeProm completion:^(SIDResult result) {
switch (result) {
case SIDResultSuccess:
NSLog(@"Инициализация прошла успешно");
break;
case SIDResultFail:
NSLog(@"Инициализация завершилась с ошибкой: часть функционала будет недоступна");
break;
case SIDResultUnknown:
NSLog(@"Инициализация завершилась с ошибкой: часть функционала будет недоступна");
break;
default:
NSLog(@"Инициализация завершилась с ошибкой: часть функционала будет недоступна");
break;
}
}];;
Установка настроек
После инициализации - введите основные параметры, как только они станут известны. Особенно важно своевременно передать clientID. Остальные параметры можно настроить позже, используя тот же метод. Передача нового значения параметра приведет к его перезаписи.
/// Применить основные настройки
/// - Parameters:
/// - clientID: ClientID приложения
/// - userID: ID пользователя
/// - partnerName: Имя / название приложения
/// - partnerProfileUrl: URL для дополнительного запроса данных
SID.settings.applyMainPreferences(
clientID: "clientID",
userID: "userID",
partnerName: "partnerName",
partnerProfileUrl: "partnerProfileUrl",
)
/// Применить основные настройки
/// - Parameters:
/// - clientID: ClientID приложения
/// - userID: ID пользователя
/// - partnerName: Имя / название приложения
/// - partnerProfileUrl: URL для дополнительного запроса данных
[SID settings applyMainPreferencesWithClientID:@"clientID"
userID:@"userID"
partnerName:@"partnerName"
partnerProfileUrl:@"partnerProfileUrl"];
Настройка UI
Настройте параметры UI перед их использованием. Если параметры не заданы, будут использоваться значения по умолчанию.
/// Инициализатор класса с возможностью задания начальных значений для настроек интерфейса.
/// При отсутствии значений используются значения по умолчанию.
/// - Parameters:
/// - texts: Тексты, используемые в интерфейсе.
/// - themeColor: Основной цвет темы интерфейса.
/// - primaryColor: Основной цвет элементов интерфейса.
/// - secondaryColor: Вторичный цвет элементов интерфейса.
/// - fonts: Шрифты, используемые в интерфейсе.
/// - elkErrorType: Типы ошибок, используемых в едином личном кабинете.
/// - widgetBackgroundColor: Цвет подложки у виджетов
/// - network: Настройки сетевых запросов
/// - webViewColor: Цвет интерфейса WebView
/// - elkHorizontalPadding: Расстояние от краев экрана для ЕЛК
let preferences = SIDUIPreferences(
texts: SIDTexts(
titleError: "titleError",
descriptionError: "descriptionError",
buttonError: "buttonError"
),
themeColor: SIDColor(
light: .black,
dark: .white
),
primaryColor: SIDColor(
light: .black,
dark: .white
),
secondaryColor: SIDColor(
light: .black,
dark: .white
),
webViewColor: SIDColor(
light: .black,
dark: .white),
fonts: SIDFonts(
semiboldFont: UIFont(name: "1stFont", size: 15),
mediumFont: UIFont(name: "2ndFont", size: 15)
),
elkErrorType: .type1,
elkHorizontalPadding: 0,
widgetBackgroundColor: SIDColor(
light: .black,
dark: .white),
network: SIDNetwork(
versionELK: nil,
headersELK: [:])
)
SID.settings.applyUIPreferences(preferences: preferences)
/// При отсутствии значений используются значения по умолчанию.
/// - Parameters:
/// - texts: Тексты, используемые в интерфейсе.
/// - themeColor: Основной цвет темы интерфейса.
/// - primaryColor: Основной цвет элементов интерфейса.
/// - secondaryColor: Вторичный цвет элементов интерфейса.
/// - fonts: Шрифты, используемые в интерфейсе.
/// - elkErrorType: Типы ошибок, используемых в едином личном кабинете.
SIDUIPreferences *preferences = [SIDUIPreferences new];
preferences.texts = [SIDTexts withTitleError:@"titleError"
descriptionError:@"descriptionError"
buttonError:@"buttonError"];
preferences.themeColor = [SIDColor withLight:[UIColor blackColor]
dark:[UIColor whiteColor]];
preferences.primaryColor = [SIDColor withLight:[UIColor blackColor]
dark:[UIColor whiteColor]];
preferences.secondaryColor = [SIDColor withLight:[UIColor blackColor]
dark:[UIColor whiteColor]];
preferences.webViewColor = [SIDColor withLight:[UIColor blackColor]
dark:[UIColor whiteColor]];
preferences.fonts = [SIDFonts withSemiboldFont:[UIFont fontWithName:@"1stFont" size:15]
mediumFont:[UIFont fontWithName:@"2ndFont" size:15]];
preferences.elkErrorType = SIDElkErrorType1;
preferences.elkHorizontalPadding = 0;
preferences.widgetBackgroundColor = [SIDColor withLight:[UIColor blackColor]
dark:[UIColor whiteColor]];
preferences.network = [SIDNetwork withVersionELK:nil
headersELK:@{}];
[SID.settings applyUIPreferences:preferences];