# Кастомизация 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 = [
"cbr_oops_network_title": "Oops! Seems like the network is down.",
"cbr_oops_network_html": "Please check your internet connection and try again.",
"cbr_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
, при нажатии не будет выполнено никаких действий.