# Примеры для .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:

  1. Инициализация и подключение к серверу.

  2. Отслеживание статусов клиента.

  3. Подключение к серверу, логин пользователем и логаут по нажатию соотвествующих кнопок.

  4. Звонок другому пользователю по его TrueConf ID.

  5. Возможность автоматически принимать входящие видеозвонки и приглашения в групповую конференцию.

Класс MainPage содержит основной функционал работы TrueConf Mobile SDK:

  1. Обрабатываются события:
  • OnServerStatusEvent - отслеживание статуса подключения к серверу;

  • OnLoginEvent - отслеживание статуса логина;

  • OnLogoutEvent - отслеживание статуса логаута;

  • OnInviteEvent - обработка входящих звонков и приглашений для автоприема;

  • OnStateChangedEvent - отслеживание состояния клиента.

  1. По клику на соответствующие кнопки вызываются методы:
  • Start - инициализация SDK;

  • LoginAs - авторизация с TrueConf ID и паролем;

  • Logout - деавторизация пользователя;

  • CallTo - звонок пользователю, TrueConf ID которого введен в соответствующее поле ввода.

  1. В методе UpdateConnectionState используются такие методы-свойства как:
  • IsStarted - проверка, запущен ли SDK;

  • IsConnectedToServer - получение состояния подключения к серверу;

  • IsLoggedIn - получение состояния авторизации на сервере;

  • IsInConference – проверка, находится ли клиент в звонке или конференции.

# Пример 2. Демонстрация работы с trueconf-ссылками

Одностраничное приложение, в котором реализованы следующие функции TrueConf Mobile SDK:

  1. Инициализация SDK без указания сервера.

  2. Обработка введенной trueconf-ссылки по нажатию на кнопку.

Класс MainPage содержит основной функционал работы TrueConf Mobile SDK:

  1. Обрабатываются события:
  • OnServerStatusEvent - отслеживание статуса подключения к серверу;

  • OnStateChangedEvent - отслеживание состояния клиента.

  1. По клику на соответствующие кнопки вызываются методы:
  • Start/Stop - инициализация и остановка SDK;

  • ParseProtocolLink - выполнение последовательности команд trueconf-ссылки.

  1. В методе 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:

  1. Отслеживание статусов пользователей из адресной книги и списка отслеживания.

  2. Добавление пользователей в список отслеживания по их TrueConf ID.

  3. Подключение к серверу и логин пользователем.

  4. Отображение списка пользователей с их статусами из адресной книги и списка отслеживания.

  5. Возможность автоматически принимать входящие видеозвонки и приглашения в групповую конференцию.

Класс MainPage содержит основной функционал работы TrueConf Mobile SDK:

  1. Обрабатываются события:
  • OnServerStatusEvent - отслеживание статуса подключения к серверу;

  • OnLoginEvent - отслеживание статуса логина;

  • OnLogoutEvent - отслеживание статуса логаута;

  • OnInviteEvent - обработка входящих звонков и приглашений для автоприема;

  • OnStateChangedEvent - отслеживание состояния клиента;

  • OnUserStatusUpdateEvent - отслеживание изменения статусов пользователей из адресной книги или списка отслеживания.

  1. По клику на соответствующие кнопки вызываются методы:
  • Start - инициализация SDK;

  • LoginAs - авторизация с TrueConf ID и паролем;

  • Logout - деавторизация пользователя;

  • GetUserStatus - получение статуса пользователя и добавление его в список отслеживания в текущей сессии.

  1. В методе UpdateConnectionState используются такие методы-свойства как:
  • IsStarted - проверка, запущен ли SDK;

  • IsConnectedToServer - получение состояния подключения к серверу;

  • IsLoggedIn - получение состояния авторизации на сервере;

  • IsInConference – проверка, находится ли клиент в звонке или конференции;

  • GetMyId - получение TrueConf ID авторизованного пользователя.

# Пример 4. Работа с групповыми конференциями

Одной из важнейших возможностей TrueConf Mobile SDK является возможность создания и участия в видеоконференциях с несколькими пользователями одновременно. На данный момент в SDK возможно подключение только к уже существующим конференциям на сервере.

Подключение возможно 4 способами:

  1. Получение приглашения посредством входящего вызова, т.е. так же, как и обычного вызова OnInviteEvent c подтверждением AcceptCall.

  2. По ID конференции с использованием метода JoinConf.

  3. По trueconf-ссылке, включающей ID конференции с использованием метода ParseProtocolLink.

  4. Методом ScheduleLoginAs, передавая в него ID конференции параметром callToUser и указывая isPublic=true. Этот метод аналогичен методу ParseProtocolLink, но не требует знания формата командной строки, предоставляя фиксированный набор параметров.

Класс MainPage содержит основной функционал работы TrueConf Mobile SDK:

  1. Обрабатываются события:
  • OnServerStatusEvent - отслеживание статуса подключения к серверу;

  • OnLoginEvent - отслеживание статуса логина;

  • OnLogoutEvent - отслеживание статуса логаута;

  • OnInviteEvent - обработка входящих звонков и приглашений для автоприема;

  • OnStateChangedEvent - отслеживание состояния клиента.

  1. По клику на соответствующие кнопки вызываются методы:
  • Start - инициализация SDK;

  • LoginAs - авторизация с TrueConf ID и паролем;

  • Logout - деавторизация пользователя;

  • JoinConf - присоединение к конференции по её ID.

  1. В методе 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:

  1. Инициализация и подключение к серверу.

  2. Отслеживание статусов клиента.

  3. Подключение к серверу, логин пользователем и логаут по нажатию соотвествующих кнопок.

  4. Отправка сообщения другому пользователю по его TrueConf ID.

  5. Возможность автоматически принимать входящие видеозвонки и приглашения в групповую конференцию.

Класс MainPage содержит основной функционал работы TrueConf Mobile SDK:

  1. Обрабатываются события:
  • OnServerStatusEvent - отслеживание статуса подключения к серверу;

  • OnLoginEvent - отслеживание статуса логина;

  • OnLogoutEvent - отслеживание статуса логаута;

  • OnInviteEvent - обработка входящих звонков и приглашений для автоприема;

  • OnStateChangedEvent - отслеживание состояния клиента;

  • OnChatMessageReceivedEvent - обработка входящих сообщений в чате. При приходе нового текстового сообщения появляется Alert с текстом сообщения и именем отправителя.

  1. По клику на соответствующие кнопки вызываются методы:
  • Start - инициализация SDK;

  • LoginAs - авторизация с TrueConf ID и паролем;

  • Logout - деавторизация пользователя;

  • SendChatMessage - отправка сообщения в чат пользователю, TrueConf ID которого введен в соответствующее поле ввода.

  1. В методе UpdateConnectionState используются такие методы-свойства как:
  • IsStarted - проверка, запущен ли SDK;

  • IsConnectedToServer - получение состояния подключения к серверу;

  • IsLoggedIn - получение состояния авторизации на сервере;

  • IsInConference – проверка, находится ли клиент в звонке или конференции.

Обновлено: 22.04.2025