Имплементация Webim Mobile Widget в iOS-приложение
Webim Mobile Widget является простейшей интеграцией чата в мобильное приложение, основанной на Webim Mobile SDK,
Установка
CocoaPods
Для подключения Mobile Widget к вашему проекту с использованием CocoaPods добавьте в список зависимостей проекта следующую строку:
pod WebimMobileWidget
SPM
- 
Откройте в своём проекте меню выбора зависимостей (Select File -> Swift Packages -> Add Package Dependency). В этом меню откройте диалоговое окно Choose Package Repository, после чего введите в него ссылку на репозиторий Webim Mobile Widget: https://github.com/webim/webim-mobile-ui-ios
- 
На следующей странице задайте правило определения версии Webim Mobile Widget: Up to Next Major. 
- 
После того как Xcode проверит источник и определит версию Webim Mobile Widget, Вы сможете выбрать библиотеку WebimMobileSDKи добавить её в Ваше целевое приложение.
Carthage
Добавьте следующую строку в Ваш Cartfile:
github "webim/webim-mobile-ui-ios" ~> 1.0.2
Важная информация
Если вы хотите использовать Widget как расширение, Вы должны предварительно задать настройки проекта соответствующим образом.
Настройка вручную:
- 
Перейдите в настройки проекта, меню Build Settings -> Swift Compiler Flags. 
- 
Добавьте значение TARGET_IS_EXTENSIONдля настройки Active Compilation Conditions.
- 
Перейдите во вкладку Build Settings -> Apple Clang Preprocessing. 
- 
Добавьте значение TARGET_IS_EXTENSIONдля настройки Preprocessor Macros.
Настройка через CocoaPods:
- 
Откройте podfile.
- 
Добавьте следующий код: post_install do |installer| installer.pods_project.targets.each do |target| if target.name == 'WebimMobileWidget' target.build_configurations.each do |config| config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS'] = 'TARGET_IS_EXTENSION' config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = 'TARGET_IS_EXTENSION=1' end end end end
- 
Выполните команду pod deintegrate; pod installв терминале.N.B. Обратите внимание, что некоторые функции при использовании виджета как расширения недоступны. 
Использование
- 
Добавьте приведённый ниже код в AppDelegate.swift.Данный код предотвращает некорректное поведение клавиатуры: func applicationDidEnterBackground(_ application: UIApplication) { WidgetAppDelegate.shared.applicationDidEnterBackground() }
- 
Задайте конфигурацию сессии со связанным объектом WMSessiionConfig.Этот метод необходимо вызвать для корректного поведения виджета: WMWidgetBuilder.set(sessionConfig):
- 
Задайте конфигурации для объектов viewControllerЕсли Вы пропустите вызовы этих методов, Webim Mobile Widget будет использовать конфигурации объектов viewControllerпо умолчанию:WMWidgetBuilder.set(chatViewControllerConfig:) WMWidgetBuilder.set(imageViewControllerConfig:) WMWidgetBuilder.set(fileViewControllerConfig:)
- 
Вызовите WMWidgetBuilder.build()для получения объекта Webim Mobile Widget, представленного контроллером классаUIViewController.