Сборка и работа с приложением
После подготовки демонстрационного приложения вы можете собрать и запустить его в эмуляторе с помощью кнопки Start the active scheme, расположенной в левой верхней панели Xcode.
В эмуляторе отобразится интерфейс демонстрационного приложения.
Создание встречи
При нажатии на кнопку Создать конференцию приложение вызывает функцию createConference()
. В ответ на вызов функции SaluteJazzzz возвращает параметры встречи, которыми пользователь может поделиться с другими участниками.
Демонстрационное приложение выводит веб-адрес встречи в журнал.
import JazzSDK
import SwiftUI
struct DemoAppView: View {
@State var roomId: String = ""
@State var roomPassword: String = ""
@State var urlString: String = ""
/// Перед вызовом функций из `JazzSession.shared` нужно инициализировать SDK с помощью `Jazz.initialize`. В противном случае приложение вернет ошибку.
var body: some View {
VStack(spacing: 10) {
Button("Создать конференцию") {
/// Передает запрос на создание встречи и выводит полученный в ответ веб-адрес.
/// В качестве атрибутов принимает параметры встречи (подробное описание в классе `JazzConferenceConfiguration`)
JazzSession.shared.createConference(
configuration: JazzConferenceConfiguration(
title: "Demo title",
type: "meeting",
settings: JazzConferenceSettings(
isGuestsOn: true,
isLobbyOn: false,
isAutoRecordEnabled: false
)
),
completion: { url in
print(url)
}
)
}
...
}
}
}
Начало встречи
При нажатии на кнопку Начать конференцию приложение вызывает функцию startConference()
, переходит к экрану создания встречи и начинает звонок.
import JazzSDK
import SwiftUI
struct DemoAppView: View {
@State var roomId: String = ""
@State var roomPassword: String = ""
@State var urlString: String = ""
/// Перед вызовом функций из `JazzSession.shared` нужно инициализировать SDK с помощью `Jazz.initialize`. В противном случае приложение вернет ошибку.
var body: some View {
VStack(spacing: 10) {
...
Button("Начать конференцию") {
/// Создает встречу и присоединяется к ней (переходит к экрану встречи).
/// В качестве атрибутов принимает параметры встречи конференции (подробное описание в классе `JazzConferenceConfiguration`), настройки источников
/// медиа (подробное описание в классе `JazzConferenceMediaSettings`), тип конференции для событий аналитики и предпочтительный тип динамика
/// для начала конференции. Например, если поставить `reciver`, то встреча начнется со звуком из тихого динамика.
JazzSession.shared.startConference(
configuration: JazzConferenceConfiguration(
title: "Demo title",
type: "meeting",
settings: JazzConferenceSettings(
isGuestsOn: true,
isLobbyOn: false,
isAutoRecordEnabled: false
)
),
mediaSettings: JazzConferenceMediaSettings(
isCameraOn: false,
isMicrophoneOn: false
),
analyticsConferenceType: nil,
preferredSpeaker: nil
)
}
...
}
}
}
Присоединение к встрече
При нажатии на кнопку Присоединиться к конференции приложение вызывает функцию joinConference()
и открывает экран встречи, параметры которой передаются в полях Код встречи и Пароль встречи.
import JazzSDK
import SwiftUI
struct DemoAppView: View {
@State var roomId: String = ""
@State var roomPassword: String = ""
@State var urlString: String = ""
/// Перед вызовом функций из `JazzSession.shared` нужно инициализировать SDK с помощью `Jazz.initialize`. В противном случае приложение вернет ошибку.
var body: some View {
VStack(spacing: 10) {
...
Button("Присоединиться к конференции") {
/// Присоединяется к существующей встрече и переходит на соответствующий экран.
/// В качестве атрибутов принимает ID и пароль встречи, к которой нужно подключиться, настройки источников медиа (см. `JazzConferenceMediaSettings`)
/// и тип конференции для событий аналитики.
JazzSession.shared.joinConference(
mediaSettings: JazzConferenceMediaSettings(
isCameraOn: false,
isMicrophoneOn: false
),
analyticsConferenceType: nil
)
}
HStack(spacing: 10) {
DemoTextField(placeholder: "Код встречи", text: $roomId)
DemoTextField(placeholder: "Пароль встречи", text: $roomPassword)
}
...
}
}
}
Завершение встречи
При нажатии на кнопку Завершить текущую конференцию приложение вызывает функцию terminateActiveConference()
, которая завершает активную встречу.
import JazzSDK
import SwiftUI
struct DemoAppView: View {
@State var roomId: String = ""
@State var roomPassword: String = ""
@State var urlString: String = ""
/// Перед вызовом функций из `JazzSession.shared` нужно инициализировать SDK с помощью `Jazz.initialize`. В противном случае приложение вернет ошибку.
var body: some View {
VStack(spacing: 10) {
...
Button("Завершить текущую конференцию") {
/// Завершение текущей встречи.
JazzSession.shared.terminateActiveConference()
}
...
}
}
}
Обработка диплинка
При нажатии на кнопку Обработать апп или диплинк приложение вызывает функцию handle()
и запускает другое приложение по диплинку, переданному в поле Ссылка.
import JazzSDK
import SwiftUI
struct DemoAppView: View {
@State var roomId: String = ""
@State var roomPassword: String = ""
@State var urlString: String = ""
/// Перед вызовом функций из `JazzSession.shared` нужно инициализировать SDK с помощью `Jazz.initialize`. В противном случае приложение вернет ошибку.
var body: some View {
VStack(spacing: 10) {
...
Button("Обработать апп или диплинк") {
if let url = URL(string: urlString) {
/// Обработка апплинков и диплинков в приложении. При переходе по апплинкам SaluteJazzzz можно присоединиться к встрече.
JazzSession.shared.handle(url: url)
}
}
DemoTextField(placeholder: "Ссылка", text: $urlString)
}
}
}