# Примеры для React Native
Примеры являются проектами кроссплатформенных приложений React Native. Каждый пример состоит из 3 частей: Android части, iOS части и общего кода JS.
Android часть содержит проект для IDE Android Studio;
iOS часть содержит проект для IDE Xcode;
JS часть содержит UI, основной код логики работы, и код использования SDK.
Всё что нужно для начала работы – это импортировать TrueConf Mobile SDK в классе App в JS:
import TrueConfSDK from 'react-native-trueconf-sdk';
Инициализация SDK выполняется в классе App вызовом функции start
. Следом за инициализацией в методе initEventsListeners
настраивается обработка необходимых событий с помощью функции addEventListener
:
initEventsListeners() {
TrueConfSDK.addEventListener('onServerStatus', this.onServerStatus);
TrueConfSDK.addEventListener('onInvite', this.onInvite);
TrueConfSDK.addEventListener('onLogin', this.onLogin);
TrueConfSDK.addEventListener('onLogout', this.onLogout);
}
Платформозависимые проекты нуждаются в определённой настройке:
в проекте для Android Studio необходимо прописать адрес репозитория, а также добавить вызовы методов
registerApp
иsetFallbackActivity
(подробнее описано здесь);в проекте для Xcode необходимо добавить разрешения на использование камеры и микрофона (подробнее описано здесь);
# Пример 1. Демонстрация основных возможностей SDK
Одностраничное приложение, в котором реализованы основные функции TrueConf Mobile SDK:
Инициализация и подключение к серверу.
Отслеживание статусов клиента.
Подключение к серверу, логин пользователем и логаут по нажатию соотвествующих кнопок.
Звонок другому пользователю по его TrueConf ID.
Возможность принимать входящие видеозвонки и приглашения в групповую конференцию.
Класс App содержит основной функционал работы TrueConf Mobile SDK:
- Обрабатываются события:
onServerStatus
- отслеживание статуса подключения к серверу;onLogin
- отслеживание статуса логина;onLogout
- отслеживание статуса логаута;onInvite
- обработка входящих звонков и приглашений в групповую конференцию.
- По клику на соответствующие кнопки вызываются методы:
start
- инициализация SDK;loginAs
- авторизация с TrueConf ID и паролем;logout
- деавторизация пользователя;callTo
- звонок пользователю, TrueConf ID которого введен в соответствующее поле ввода.
# Пример 2. Демонстрация работы с trueconf-ссылками
Одностраничное приложение, в котором реализованы следующие функции TrueConf Mobile SDK:
Инициализация SDK без указания сервера.
Обработка введенной trueconf-ссылки по нажатию на кнопку.
Класс App содержит основной функционал работы TrueConf Mobile SDK:
- Обрабатываются события:
onServerStatus
- отслеживание статуса подключения к серверу;onLogin
- отслеживание статуса логина;onLogout
- отслеживание статуса логаута;onInvite
- обработка входящих звонков и приглашений в групповую конференцию.
- По клику на соответствующие кнопки вызываются методы:
start
- инициализация SDK;parseProtocolLink
- выполнение последовательности команд trueconf-ссылки.
# Пример 3. Работа со статусами пользователей
В примере представлен работающий образец кода, позволяющий отслеживать статусы пользователей на сервере, с которыми можно установить связь, а также добавлять для отслеживания статусы любых пользователей и следить за их доступностью. Кроме самого статуса пользователя используется стандартный функционал TrueConf Mobile SDK: подключение к серверу, логин, автоматический прием звонка.
Вся работа примера построена на основании единственного блока обработчика события onUserStatusUpdate
, который выполняется, когда сервер присылает статус какого-либо пользователя. Для добавления любого пользователя в отслеживаемые используется метод getUserStatus
. При этом реализованный код позволяет отслеживать и отображать в таблице изменения статуса конкретного пользователя, обрабатывать добавление новых пользователей и добавление любого пользователя для отслеживания.
Для хранения списка пользователей со статусами используется переменная users
с параметрами userID
и state
. За отрисовку таблицы со списком пользователей и их статусами отвечает класс UsersList.
Пример является одностраничным приложением, в котором реализованы основные функции TrueConf Mobile SDK:
Отслеживание статусов пользователей из адресной книги и списка отслеживания.
Добавление пользователей в список отслеживания по их TrueConf ID.
Подключение к серверу и логин пользователем.
Отображение списка пользователей с их статусами из адресной книги и списка отслеживания.
Возможность принимать входящие видеозвонки и приглашения в групповую конференцию.
Класс App содержит основной функционал работы TrueConf Mobile SDK:
- Обрабатываются события:
onServerStatus
- отслеживание статуса подключения к серверу;onLogin
- отслеживание статуса логина;onLogout
- отслеживание статуса логаута;onInvite
- обработка входящих звонков и приглашений в групповую конференцию;onUserStatusUpdate
- отслеживание изменения статусов пользователей из адресной книги или списка отслеживания.
- По клику на соответствующие кнопки вызываются методы:
start
- инициализация SDK;loginAs
- авторизация с TrueConf ID и паролем;logout
- деавторизация пользователя;getUserStatus
- получение статуса пользователя и добавление его в список отслеживания в текущей сессии.
# Пример 4. Работа с групповыми конференциями
Одной из важнейших возможностей TrueConf Mobile SDK является возможность создания и участия в видеоконференциях с несколькими пользователями одновременно. На данный момент в SDK возможно подключение только к уже существующим конференциям на сервере.
Подключение возможно 4 способами:
Получение приглашения посредством входящего вызова, т.е. так же, как и обычного вызова
onInvite
c подтверждениемacceptCall
.По ID конференции с использованием метода
joinConf
.По trueconf-ссылке, включающей ID конференции с использованием метода
parseProtocolLink
.Методом
scheduleLoginAs
, передавая в него ID конференции параметромcallToUser
и указываяisPublic=true
. Этот метод аналогичен методуparseProtocolLink
, но не требует знания формата командной строки, предоставляя фиксированный набор параметров.
Класс App содержит основной функционал работы TrueConf Mobile SDK:
- Обрабатываются события:
onServerStatus
- отслеживание статуса подключения к серверу;onLogin
- отслеживание статуса логина;onLogout
- отслеживание статуса логаута;onInvite
- обработка входящих звонков и приглашений в групповую конференцию;onConferenceStart
- обработка момента подключения к конференции;onConferenceEnd
- обработка момента выхода из конференции.
- По клику на соответствующие кнопки вызываются методы:
start
- инициализация SDK;loginAs
- авторизация с TrueConf ID и паролем;logout
- деавторизация пользователя;joinConf
- присоединение к конференции по её ID.
# Пример 5. Кастомизация интерфейса
Пример показывает, каким образом можно заменить изображения всех кнопок, которые показываются при звонке, добавить свои собственные дополнительные кнопки и открыть своё окно поверх окна конференции.
Общая часть дублирует функционал Примера 1:
подключение к серверу;
авторизация и деавторизация;
звонок пользователю по TrueConf ID;
обработка основных событий и отслеживание статуса клиента.
В примере изменяются картинки стандартных кнопок в панели управления конференцией, а также кнопок на селфвью. Кастомизация производится с помощью добавления в ресурсы картинок определённых названий. Списки названий для иконок представлены в описании Примера 5 для Android, а также для iOS.
Дополнительно реализовано добавление кастомной кнопки и отображение отдельного окна поверх окна конференции. В функцию addExtraButton
передаётся название кастомной кнопки, а затем в обработчике события onExtraButtonPressed
вызывается функция showAlertPage
, которая отображает новое окно поверх окна конференции - Activity
для Android, UIViewController
для iOS. В данном случае эти окна создаются и настраиваются непосредственно в нативных модулях SDK: для Android это класс DialogActivity
, для iOS - DialogViewController
. Эти классы можно редактировать.
# Пример 6. Чат
Одностраничное приложение, в котором реализованы основные функции TrueConf Mobile SDK:
Инициализация и подключение к серверу.
Отслеживание статусов клиента.
Подключение к серверу, логин пользователем и логаут по нажатию соотвествующих кнопок.
Отправка сообщения другому пользователю по его TrueConf ID.
Возможность принимать входящие видеозвонки и приглашения в групповую конференцию.
Класс App содержит основной функционал работы TrueConf Mobile SDK:
- Обрабатываются события:
onServerStatus
- отслеживание статуса подключения к серверу;onLogin
- отслеживание статуса логина;onLogout
- отслеживание статуса логаута;onInvite
- обработка входящих звонков и приглашений в групповую конференцию;onChatMessageReceived
- обработка входящих сообщений в чате. При приходе нового текстового сообщения появляется Alert с текстом сообщения и именем отправителя.
- По клику на соответствующие кнопки вызываются методы:
start
- инициализация SDK;loginAs
- авторизация с TrueConf ID и паролем;logout
- деавторизация пользователя;sendChatMessage
- отправка сообщения в чат пользователю, TrueConf ID которого введен в соответствующее поле ввода.
# Пример 7. Кастомизация вывода видеоокон в конференции
В примере реализована возможность размещения собственного изображения и изображения участников конференции в отдельные области экрана. Также показана самостоятельная реализация кнопок управления конференцией на главном окне.
Настройка кастомных областей для отображения собственного изображения и изображения участников конференции полностью выполняется в нативных модулях SDK в методе initCustomViews
, который достаточно вызвать в любой момент после вызова start
и перед присоединением в конференцию. При необходимости этот метод можно отредактировать. Про настройку кастомных областей подробно описано в Примере 7 для Android и соответственно в Примере 7 для iOS.
Управление конференцией реализовано с помощью набора кастомных кнопок на главном экране, которые выполняют соответствующие функции SDK:
Mic
- кнопка, которая меняет состояние микрофона методомmuteMicrophone
. Проверка текущего состояния микрофона выполняется с помощью методаisMicrophoneMuted
;Cam
- кнопка, которая меняет состояние камеры методомmuteCamera
. Проверка текущего состояния камеры выполняется с помощью методаisCameraMuted
;Hangup
- кнопка, которая выполняет выход из конференции с помощью методаhangup
.
Также класс App содержит основной функционал работы TrueConf Mobile SDK:
- Обрабатываются события:
onServerStatus
- отслеживание статуса подключения к серверу;onLogin
- отслеживание статуса логина;onLogout
- отслеживание статуса логаута;onInvite
- обработка входящих звонков и приглашений в групповую конференцию.
- По клику на соответствующие кнопки вызываются методы:
start
- инициализация SDK;loginAs
- авторизация с TrueConf ID и паролем;logout
- деавторизация пользователя;joinConf
- присоединение к конференции по её ID.