# Кастомизация iOS SDK
# Логирование
По умолчанию SDK выводит сообщения только в случае критических событий (.error).
Вы можете выбрать желаемый уровень логирования для свойства logLevel:
.off— логи отключены..error(по умолчанию) — только критические ошибки..warning— предупреждения и ошибки..info— информационные сообщения, предупреждения и ошибки..debug— отладочные сообщения, информация, предупреждения и ошибки..trace— максимальный уровень детализации, логируется всё, что возможно.
sdk.logLevel = .error
# Перехват логов
По умолчанию SDK использует функцию логирования NSLog. Если по какой-то причине вам это не подходит, можно использовать перехват логов с помощью замыкания logHandler.
sdk.logHandler { (level, message) in
print(Date(), "[Idensic] \(message)")
}
# Аналитика
SDK собирает и отправляет данные об использовании на серверы IDnGO. Мы не отслеживаем чувствительные данные, отправляется только общая статистика использования. Она включает события навигации по экранам, взаимодействие с элементами интерфейса и так далее.
Мы анализируем эти данные для улучшения IDnGO. Данные не передаются третьим сторонам, и не используются для рекламы.
Отключение аналитики данных:
sdk.isAnalyticsEnabled = false
# Настройка iOS SDK
# Тема
Тема (theme) позволяет изменять внешний вид SDK, включая шрифты, цвета и изображения. После инициализации SDK доступна возможность настройки темы.
Доступны два способа настройки:
- Изменение отдельных параметров в существующей теме.
- Создание и применение собственной темы на основе
CBRTheme.
Изменение цвета фона в стандартной теме:
sdk.theme.colors.backgroundCommon = .white
Создание и применение собственной темы:
sdk.theme = OwnTheme()
class OwnTheme: CBRTheme {
override init() {
super.init()
colors.backgroundCommon = .white
}
}
Подробнее в разделе Настройки тем для iOS SDK.
# Шрифты
По умолчанию размеры шрифтов автоматически подстраиваются под выбранный в настройках устройства размер шрифта.
При запуске SDK считывает установленное пользователем значение preferredContentSizeCategory и изменяет шрифты в соответствии с этим параметром. Изменения размера, внесенные во время работы SDK, не будут применяться до следующего запуска.
Максимально размер текста — .extraExtraExtraLarge.
Автоматическую настройку шрифтов можно отключить:
sdk.theme.metrics.respectsPreferredContentSizeCategory = false
# Переводы
Вы можете настроить тексты, используемые в SDK, в разделе «Интеграции SDK».
Язык текста будет установлен в соответствии с предпочитаемым языком системы, но вы можете изменить sdk.locale на нужный вам язык. Значения принимаются в формате ru или ru_RU.
Выбор языка SDK в соответствии с настройками устройства:
sdk.locale = Locale.current.identifier
# Текстовые строки
Часть текста задается локально и не изменяется при смене настроек языка SDK. Например, для ситуаций, когда сервер с переводом недоступен из-за отсутствия интернета, но нужно гарантированно отобразить определённый текст, используется локальное управление строками.
Для изменения строк можно воспользоваться свойством sdk.strings.
sdk.strings = [
"sns_oops_network_title": "Oops! Seems like the network is down.",
"sns_oops_network_html": "Please check your internet connection and try again.",
"sns_oops_action_retry": "Try again",
]
Обратите внимание, что sdk.locale не влияет на эти текстовые строки, поэтому нужно самостоятельно добавлять переводы в зависимости от языка пользователя.
# Способы связи
Элементы поддержки определяют способы, с помощью которых пользователи могут связаться с вами. По умолчанию автоматически создается элемент для отправки запроса по электронной почте. Адрес электронной почты поддержки можно настроить в разделе «Интеграция SDK».
Можно настроить элементы поддержки напрямую назначая массив элементов в свойство sdk.supportItems, либо использовать метод sdk.addSupportItem, чтобы добавлять элементы по одному.
Элемент с URL-ссылкой, которая будет открываться при нажатии:
sdk.addSupportItem { (item) in
item.title = NSLocalizedString("URL Item", comment: "")
item.subtitle = NSLocalizedString("Tap me to open an url", comment: "")
item.icon = UIImage(named: "AppIcon")
item.actionURL = URL(string: "https://google.com")
}
Элемент, который вызывает действие при нажатии, без использования URL:
sdk.addSupportItem { (item) in
item.title = NSLocalizedString("Callback Item", comment: "")
item.subtitle = NSLocalizedString("Tap me to get callback fired", comment: "")
item.icon = UIImage(named: "AppIcon")
item.actionHandler { (supportVC, item) in
print("[\(item.title)] tapped")
}
}
Каждый элемент обязательно должен иметь заголовок (title). Иконка (icon), подзаголовок (subtitle) и действие (actionURL или actionHandler)необязательны.
Если не указаны ни actionURL, ни actionHandler, при нажатии не будет выполнено никаких действий.