# Примеры для .NET
Примеры являются проектами кроссплатформенных приложений MAUI на базе .NET 8. Каждый пример состоит из 3 частей: Android части, iOS части и общего кода (на базе .NET 8).
Android часть проекта содержит настройки и платформозависимый код для Android;
iOS часть - соотвественно iOS код и настройки;
в части с общим кодом содержится UI, основной код логики работы, и код использования SDK.
Для использования TrueConf Mobile SDK для начала необходимо в классе App импортировать платформозависимые интерфейсы:
using Trueconf.Sdk.NET;
#if ANDROID
using Trueconf.Sdk.Android;
#elif IOS
using Trueconf.Sdk.iOS;
#endif
Всё что нужно для начала работы – это получить объект ITrueConfSDK
инициализацией реализации для Android или iOS данного интерфейса:
ITrueConfSDK tcSDK = new TrueConfSDKAndroid(); // for Android
ITrueConfSDK tcSDK = new TrueConfSDKiOS(); // for iOS
Все примеры содержат общие части:
- в классе App в конструкторе при создании объекта MainPage в конструкторе MainPage передается полученный объект
ITrueConfSDK
:
MainPage = new MainPage(tcSDK);
- в конструкторе MainPage полученный объект
ITrueConfSDK
сохраняется в поле классаtcSDK
, а также настраивается обработка необходимых событий:
tcSDK.OnServerStatusEvent += TrueConfSDK_OnServerStatusEvent;
tcSDK.OnStateChangedEvent += TrueConfSDK_OnStateChangedEvent;
tcSDK.OnLoginEvent += TrueConfSDK_OnLoginEvent;
tcSDK.OnLogoutEvent += TrueConfSDK_OnLogoutEvent;
tcSDK.OnInviteEvent += TrueConfSDK_OnInviteEvent;
tcSDK.OnRejectEvent += TrueConfSDK_OnRejectEvent;
tcSDK.OnRejectTimeOutEvent += TrueConfSDK_OnRejectTimeOutEvent;
tcSDK.OnAcceptEvent += TrueConfSDK_OnAcceptEvent;
tcSDK.OnConferenceEndEvent += TrueConfSDK_OnConferenceEndEvent;
tcSDK.OnConferenceStartEvent += TrueConfSDK_OnConferenceStartEvent;
tcSDK.OnUserStatusUpdateEvent += TrueConfSDK_OnUserStatusUpdateEvent;
начальная инициализация происходит в платформозависимых частях проекта с передачей платформозависимых параметров -
Activity
для Android иUIApplication
для iOS. Затем вызывается методStart
в классе MainPage, а настройка обработки необходимых событий в примере находится в конструкторе класса MainPage. Настраивать обработчики событий можно и послеStart
и в любой момент менять их.Android часть: в классе
MainActivity
в методеOnCreate
вызывается статический методInit
, в который передается текущийActivity
для последующей инициализации:
TrueConfSDKAndroid.Init(this);
- iOS часть: в классе
AppDelegate
в методеFinishedLaunching
вызывается статический методInit
, в который передается текущийUIApplication
для последующей инициализации:
TrueConfSDKiOS.Init(application);
# Пример 1. Демонстрация основных возможностей SDK
Одностраничное приложение, в котором реализованы основные функции TrueConf Mobile SDK:
Инициализация и подключение к серверу.
Отслеживание статусов клиента.
Подключение к серверу, логин пользователем и логаут по нажатию соотвествующих кнопок.
Звонок другому пользователю по его TrueConf ID.
Возможность автоматически принимать входящие видеозвонки и приглашения в групповую конференцию.
Класс MainPage содержит основной функционал работы TrueConf Mobile SDK:
- Обрабатываются события:
OnServerStatusEvent
- отслеживание статуса подключения к серверу;OnLoginEvent
- отслеживание статуса логина;OnLogoutEvent
- отслеживание статуса логаута;OnInviteEvent
- обработка входящих звонков и приглашений для автоприема;OnStateChangedEvent
- отслеживание состояния клиента.
- По клику на соответствующие кнопки вызываются методы:
Start
- инициализация SDK;LoginAs
- авторизация с TrueConf ID и паролем;Logout
- деавторизация пользователя;CallTo
- звонок пользователю, TrueConf ID которого введен в соответствующее поле ввода.
- В методе UpdateConnectionState используются такие методы-свойства как:
IsStarted
- проверка, запущен ли SDK;IsConnectedToServer
- получение состояния подключения к серверу;IsLoggedIn
- получение состояния авторизации на сервере;IsInConference
– проверка, находится ли клиент в звонке или конференции.
# Пример 2. Демонстрация работы с trueconf-ссылками
Одностраничное приложение, в котором реализованы следующие функции TrueConf Mobile SDK:
Инициализация SDK без указания сервера.
Обработка введенной trueconf-ссылки по нажатию на кнопку.
Класс MainPage содержит основной функционал работы TrueConf Mobile SDK:
- Обрабатываются события:
OnServerStatusEvent
- отслеживание статуса подключения к серверу;OnStateChangedEvent
- отслеживание состояния клиента.
- По клику на соответствующие кнопки вызываются методы:
Start
/Stop
- инициализация и остановка SDK;ParseProtocolLink
- выполнение последовательности команд trueconf-ссылки.
- В методе UpdateConnectionState используются такие методы-свойства как:
IsConnectedToServer
- получение состояния подключения к серверу.
# Пример 3. Работа со статусами пользователей
В примере представлен работающий образец кода, позволяющий отслеживать статусы пользователей на сервере, с которыми можно установить связь, а также добавлять для отслеживания статусы любых пользователей и следить за их доступностью. Кроме самого статуса пользователя используется стандартный функционал TrueConf Mobile SDK: подключение к серверу, логин, автоматический прием звонка.
Вся работа примера построена на основании единственного блока обработчика события OnUserStatusUpdateEvent
, который выполняется, когда сервер присылает статус какого-либо пользователя. Для добавления любого пользователя в отслеживаемые используется метод GetUserStatus
. При этом реализованный код позволяет отслеживать и отображать в таблице изменения статуса конкретного пользователя, обрабатывать добавление новых пользователей и добавление любого пользователя для отслеживания.
Для хранения списка пользователей со статусами реализован класс UserStatus
c полями string userId
, string status
, Color color
. Этот класс реализует интерфейс INotifyPropertyChanged
для поддержки автообновления таблицы со статусами пользователей при изменении в списке. В классе MainPage есть поле со списком объектов типа UserStatus
для хранения всех отслеживаемых пользователей и их статусов:
ObservableCollection<UserStatus> users;
В конструкторе класса MainPage этот список передается в качестве ItemsSource
элементу страницы типа ListView для отображения.
Пример является одностраничным приложением, в котором реализованы основные функции TrueConf Mobile SDK:
Отслеживание статусов пользователей из адресной книги и списка отслеживания.
Добавление пользователей в список отслеживания по их TrueConf ID.
Подключение к серверу и логин пользователем.
Отображение списка пользователей с их статусами из адресной книги и списка отслеживания.
Возможность автоматически принимать входящие видеозвонки и приглашения в групповую конференцию.
Класс MainPage содержит основной функционал работы TrueConf Mobile SDK:
- Обрабатываются события:
OnServerStatusEvent
- отслеживание статуса подключения к серверу;OnLoginEvent
- отслеживание статуса логина;OnLogoutEvent
- отслеживание статуса логаута;OnInviteEvent
- обработка входящих звонков и приглашений для автоприема;OnStateChangedEvent
- отслеживание состояния клиента;OnUserStatusUpdateEvent
- отслеживание изменения статусов пользователей из адресной книги или списка отслеживания.
- По клику на соответствующие кнопки вызываются методы:
Start
- инициализация SDK;LoginAs
- авторизация с TrueConf ID и паролем;Logout
- деавторизация пользователя;GetUserStatus
- получение статуса пользователя и добавление его в список отслеживания в текущей сессии.
- В методе UpdateConnectionState используются такие методы-свойства как:
IsStarted
- проверка, запущен ли SDK;IsConnectedToServer
- получение состояния подключения к серверу;IsLoggedIn
- получение состояния авторизации на сервере;IsInConference
– проверка, находится ли клиент в звонке или конференции;GetMyId
- получение TrueConf ID авторизованного пользователя.
# Пример 4. Работа с групповыми конференциями
Одной из важнейших возможностей TrueConf Mobile SDK является возможность создания и участия в видеоконференциях с несколькими пользователями одновременно. На данный момент в SDK возможно подключение только к уже существующим конференциям на сервере.
Подключение возможно 4 способами:
Получение приглашения посредством входящего вызова, т.е. так же, как и обычного вызова
OnInviteEvent
c подтверждениемAcceptCall
.По ID конференции с использованием метода
JoinConf
.По trueconf-ссылке, включающей ID конференции с использованием метода
ParseProtocolLink
.Методом
ScheduleLoginAs
, передавая в него ID конференции параметромcallToUser
и указываяisPublic=true
. Этот метод аналогичен методуParseProtocolLink
, но не требует знания формата командной строки, предоставляя фиксированный набор параметров.
Класс MainPage содержит основной функционал работы TrueConf Mobile SDK:
- Обрабатываются события:
OnServerStatusEvent
- отслеживание статуса подключения к серверу;OnLoginEvent
- отслеживание статуса логина;OnLogoutEvent
- отслеживание статуса логаута;OnInviteEvent
- обработка входящих звонков и приглашений для автоприема;OnStateChangedEvent
- отслеживание состояния клиента.
- По клику на соответствующие кнопки вызываются методы:
Start
- инициализация SDK;LoginAs
- авторизация с TrueConf ID и паролем;Logout
- деавторизация пользователя;JoinConf
- присоединение к конференции по её ID.
- В методе UpdateConnectionState используются такие методы-свойства как:
IsStarted
- проверка, запущен ли SDK;IsConnectedToServer
- получение состояния подключения к серверу;IsLoggedIn
- получение состояния авторизации на сервере;IsInConference
– проверка, находится ли клиент в звонке или конференции.
# Пример 5. Кастомизация интерфейса
Пример показывает, каким образом можно заменить изображения всех кнопок, которые показываются при звонке, добавить свои собственные дополнительные кнопки и открыть своё окно поверх окна конференции.
Общая часть дублирует функционал Примера 1:
подключение к серверу;
авторизация и деавторизация;
звонок пользователю по TrueConf ID;
обработка основных событий и отслеживание статуса клиента.
Дополнительно в Android и iOS частях реализовано добавление кастомных кнопок и отображение отдельного окна с алертом поверх окна конференции.
Android часть:
После вызова функции Init
в методе OnCreate
класса MainActivity создаётся массив объектов типа TCExtraButton
, в которые необходимо передать название кнопки и выполняемое действие типа Android.Views.View.IOnClickListener
:
var btns = new TCExtraButton[] {
new TCExtraButton("Button 1", new OnClickListener(handler: v => AlertCreate(1))),
...
};
Функция AlertCreate
создаёт AlertDialog
и отображается с помощью метода Show
:
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.SetPositiveButton("OK", (sender, e) => { });
dialog.SetCancelable(false);
dialog.SetTitle("Title");
dialog.SetMessage("Message");
dialog.Show();
Затем в методе OnCreate
класса MainActivity созданные кнопки добавляются в SDK с помощью статического метода AddCustomButtons
:
TrueConfSDKAndroid.AddCustomButtons(btns);
iOS часть:
После вызова функции Init
в методе FinishedLaunching
класса AppDelegate создаётся массив объектов типа TCSDKExtraButton
, в которых создается UIAlertController
и отображается с помощью метода PresentViewController
:
var btns = new UIAlertAction[] {
new TCSDKExtraButton("Button 1", UIImage.GetSystemImage("star"), () => {
var alertController = UIAlertController.Create("Title", "Message", UIAlertControllerStyle.Alert);
alertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Cancel, null));
TrueConfSDKiOS.PresentViewController(alertController, true, null, null);
}),
...
};
Затем в методе FinishedLaunching
класса AppDelegate после создания массива кнопок типа TCSDKExtraButton
, созданный массив добавляется в SDK с помощью статического метода AddCustomButtons
:
TrueConfSDKiOS.AddCustomButtons(btns);
# Пример 6. Чат
Одностраничное приложение, в котором реализованы основные функции TrueConf Mobile SDK:
Инициализация и подключение к серверу.
Отслеживание статусов клиента.
Подключение к серверу, логин пользователем и логаут по нажатию соотвествующих кнопок.
Отправка сообщения другому пользователю по его TrueConf ID.
Возможность автоматически принимать входящие видеозвонки и приглашения в групповую конференцию.
Класс MainPage содержит основной функционал работы TrueConf Mobile SDK:
- Обрабатываются события:
OnServerStatusEvent
- отслеживание статуса подключения к серверу;OnLoginEvent
- отслеживание статуса логина;OnLogoutEvent
- отслеживание статуса логаута;OnInviteEvent
- обработка входящих звонков и приглашений для автоприема;OnStateChangedEvent
- отслеживание состояния клиента;OnChatMessageReceivedEvent
- обработка входящих сообщений в чате. При приходе нового текстового сообщения появляется Alert с текстом сообщения и именем отправителя.
- По клику на соответствующие кнопки вызываются методы:
Start
- инициализация SDK;LoginAs
- авторизация с TrueConf ID и паролем;Logout
- деавторизация пользователя;SendChatMessage
- отправка сообщения в чат пользователю, TrueConf ID которого введен в соответствующее поле ввода.
- В методе UpdateConnectionState используются такие методы-свойства как:
IsStarted
- проверка, запущен ли SDK;IsConnectedToServer
- получение состояния подключения к серверу;IsLoggedIn
- получение состояния авторизации на сервере;IsInConference
– проверка, находится ли клиент в звонке или конференции.