Перейти к содержанию

Имплементация Webim Mobile Widget в iOS-приложение

Webim Mobile Widget является простейшей интеграцией чата в мобильное приложение, основанной на Webim Mobile SDK,

Установка

CocoaPods

Для подключения Mobile Widget к вашему проекту с использованием CocoaPods добавьте в список зависимостей проекта следующую строку:

pod WebimMobileWidget

SPM

  1. Откройте в своём проекте меню выбора зависимостей (Select File -> Swift Packages -> Add Package Dependency). В этом меню откройте диалоговое окно Choose Package Repository, после чего введите в него ссылку на репозиторий Webim Mobile Widget:

    https://github.com/webim/webim-mobile-ui-ios
    
  2. На следующей странице задайте правило определения версии Webim Mobile Widget: Up to Next Major.

  3. После того как Xcode проверит источник и определит версию Webim Mobile Widget, Вы сможете выбрать библиотеку WebimMobileSDK и добавить её в Ваше целевое приложение.

Carthage

Добавьте следующую строку в Ваш Cartfile:

github "webim/webim-mobile-ui-ios" ~> 1.0.2

Важная информация

Если вы хотите использовать Widget как расширение, Вы должны предварительно задать настройки проекта соответствующим образом.

Настройка вручную:

  1. Перейдите в настройки проекта, меню Build Settings -> Swift Compiler Flags.

  2. Добавьте значение TARGET_IS_EXTENSION для настройки Active Compilation Conditions.

  3. Перейдите во вкладку Build Settings -> Apple Clang Preprocessing.

  4. Добавьте значение TARGET_IS_EXTENSION для настройки Preprocessor Macros.

Настройка через CocoaPods:

  1. Откройте podfile.

  2. Добавьте следующий код:

    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
    
  3. Выполните команду pod deintegrate; pod install в терминале.

    N.B.

    Обратите внимание, что некоторые функции при использовании виджета как расширения недоступны.

Использование

  1. Добавьте приведённый ниже код в AppDelegate.swift.

    Данный код предотвращает некорректное поведение клавиатуры:

        func applicationDidEnterBackground(_ application: UIApplication) {
            WidgetAppDelegate.shared.applicationDidEnterBackground()
        }
    
  2. Задайте конфигурацию сессии со связанным объектом WMSessiionConfig.

    Этот метод необходимо вызвать для корректного поведения виджета:

    WMWidgetBuilder.set(sessionConfig):
    
  3. Задайте конфигурации для объектов viewController

    Если Вы пропустите вызовы этих методов, Webim Mobile Widget будет использовать конфигурации объектов viewController по умолчанию:

    WMWidgetBuilder.set(chatViewControllerConfig:)
    WMWidgetBuilder.set(imageViewControllerConfig:)
    WMWidgetBuilder.set(fileViewControllerConfig:)
    
  4. Вызовите WMWidgetBuilder.build() для получения объекта Webim Mobile Widget, представленного контроллером класса UIViewController.