Имплементация 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
.