# Примеры для 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 способами:
Получение приглашения посредством входящего вызова, т.е. так же, как и обычного вызова
onInvitec подтверждением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.