В зависимости от выбранного способа интеграции, провести следующие действия:
- Необходимо инициализировать CocoaPods в проекте путем выполнения команды
pod init
- Необходимо добавить в
Podfile
следующие строки:
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/nauphone/chatpods.git'
post_install do |installer|
installer.pods_project.build_configurations.each do |config|
config.build_settings.delete('CODE_SIGNING_ALLOWED')
config.build_settings.delete('CODE_SIGNING_REQUIRED')
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
pod 'ChatSDK', :git => '<link>', :tag => '<version>'
Где:
- link – ссылка для подключения iOS Chat SDK (предоставляется компанией NAUMEN)
- version – номер версии iOS Chat SDK
- Выполнить команду
pod install --repo-update
в директории проекта
Xcode имеет встроенный менеджер зависимостей Swift Package Manager. Вы можете добавить пакет, выбрав File -> Add Packages Dependencies...
и вставив в строку поиска ссылку на репозиторий iOS Chat SDK. Подробнее читайте в документации Apple.
Или вы можете добавить следующую зависимость в файл Package.swift:
dependencies: [
.package(url: "<link>", .upToNextMajor(from: "<version>"))
]
Где:
- link – ссылка для подключения iOS Chat SDK (предоставляется компанией NAUMEN)
- version – номер версии iOS Chat SDK
- Необходимо выбрать способ передачи данных авторизации пользователя
- Необходимо заполнить пустые параметры
NChatSDKService
в методеconfigureChatSDK()
в файле AppDelegate.swift
Существует три варианта создания данных авторизации (документация):
- Первый вариант. Авторизация с использованием crmId:
let authData = NChatSDKAuthData(
crmId: deviceID, // Уникальный идентификатор пользователя
attributes: attributes // Произвольные параметры
)
- Второй вариант. Авторизация с использованием генерируемого на стороне SDK JWT-токена (рекомендуемый вариант):
let authData = NChatSDKAuthData(
crmId: deviceID, // Уникальный идентификатор пользователя
attributes: attributes, // Произвольные параметры
privateKey: "<Приватный ключ>" // Приватный ключ для генерации JWT-токена. Документация: https://callcenter.naumen.ru/docs/ru/ncc/web/Content/WebChat/Token_Use.htm
)
Примечание: Используется шифрование RS256. Токен генерируется локально
- Третий вариант. Авторизация с использованием JWT-токена (рекомендуемый вариант):
let authData = NChatSDKAuthData(
token: "<JWT-токен>", // Токен необходимо сгенерировать заранее. Документация: https://callcenter.naumen.ru/docs/ru/ncc/web/Content/WebChat/Token_Use.htm
attributes: attributes // Произвольные параметры
)
Примечание: Данные переданные в JWT-токене являются приоритетными
В зависимости от версии настройка и инициализация Chat SDK могут отличаться:
Необходимо заполнить данные инициализатора NChatSDKService
в зависимости от интеграции NCC Chat и настроек витрины чата:
let chatSDKService = NChatSDKService(
authData: authData, // Данные авторизации пользователя
showcaseId: , // Идентификатор витрины
url: , // Адрес сервера ("https://" + <api host>)
wsUrl: , // Адрес websocket ("wss://" + <websocket host>)
theme: getTheme(), // Тема для чата
handler: Handler() // Обработчик событий
)
- В файле ViewController.swift можно увидеть пример встраивания SDK через кастомный контроллер ChatContainer. Важно отметить, что контроллер-контейнер для контроллера чата должен соответствовать протоколу
NChatSDKToolbar
и включать NavigationBar - В качестве примера в проекте присутствует кастомный контейней для контроллера чата ChatContainer, в котором используюется кастомный TitleView ImageTitleView.swift и кнопку с аватаром оператора AvatarButton.swift
- Стоит обратить внимание на настройку кастомизации в методе
getTheme()
файла AppDelegate.swift. Кастомизацию можно провести как изменением значений параметров, так и используя конструкторы.
- В данном примере показан пример встраивания с использованием собственного контейнера. Дополнительную информацию можно получить в документации)
- Интерфейс SDK можно широко кастомизировать. Ознакомиться с примерами кастомизации также можно в документации