Внедрение пользовательской модели данных в библиотеку пользовательского интерфейса для приложения
Службы коммуникации Azure использует модель, не зависящая от удостоверений, в которой разработчики могут принести свои собственные удостоверения. Разработчики могут получить свою модель данных и связать ее с Службы коммуникации Azure удостоверениями. Модель данных для пользователя, скорее всего, включает такие сведения, как отображаемое имя, изображение профиля или аватар, а также другие сведения. Разработчики используют эту информацию для создания приложений и платформ.
Библиотека пользовательского интерфейса упрощает внедрение пользовательской модели данных в компоненты пользовательского интерфейса. При отрисовки компонентов пользовательского интерфейса они показывают пользователям предоставленные сведения, а не универсальные сведения из Службы коммуникации Azure.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Развернутый ресурс Служб коммуникации. Создайте ресурс Служб коммуникации.
- Маркер доступа пользователя для включения клиента для вызовов. Получите маркер доступа пользователя.
- Необязательно. Завершение краткого руководства по началу работы с составными компонентами библиотеки пользовательского интерфейса.
Настройка внедрения
Подробную документацию и краткие руководства по библиотеке веб-интерфейса см. в статье " История библиотеки веб-интерфейса".
Дополнительные сведения см. в разделе "Пользовательская модель данных пользователя" в библиотеке веб-пользовательского интерфейса.
Дополнительные сведения см. в библиотеке пользовательского интерфейса Android с открытым исходным кодом и образце кода приложения.
Настройка представления локального участника
Библиотека пользовательского интерфейса предоставляет разработчикам возможность предоставлять настраиваемый интерфейс относительно сведений о участниках. При запуске можно при необходимости внедрить данные локального участника. Эти локальные данные не используются сервером, и его можно использовать для настройки отображаемого имени и аватара локального пользователя.
Локальные параметры
CallCompositeLocalOptions
— это модель данных, которая может иметь CallCompositeParticipantViewData
и CallCompositeSetupScreenViewData
. Он представляет локального участника.
По умолчанию для удаленных участников библиотека пользовательского интерфейса отображает displayName
сведения, внедренные в RemoteOptions
. Эти сведения отправляются на сервер Службы коммуникации Azure серверной части. При CallCompositeParticipantViewData
внедрении участник displayName
и avatar
информация отображаются во всех компонентах аватара локально.
Аналогичным образом, для CallCompositeSetupScreenViewData
и title
subtitle
перезаписи CallCompositeSetupScreenViewData
заголовка и подзаголовок панели навигации на экране предварительной подготовки соответственно. По умолчанию библиотека пользовательского интерфейса отображает программу установки в качестве заголовка, а подзаголовок — ничего.
Данные представления локальных участников
CallCompositeParticipantViewData
— это класс, который задает displayName
и avatarBitmap
scaleType
для элемента управления аватаром. Этот класс передается CallCompositeLocalOptions
для настройки сведений о представлении локальных участников. Этот класс хранится в объекте CallCompositeLocalOptions
, который представляет параметры, используемые локально на устройстве, выполняющего вызов.
Этот экземпляр displayName
отличается от информации, displayName
переданной через CallCompositeRemoteOptions
:
- Экземпляр
CallCompositeParticipantViewData
displayName
используется только локально в качестве переопределения. CallCompositeRemoteOptions
ЭкземплярdisplayName
передается серверу и предоставляется другим участникам.
Если экземпляр displayName
не указанCallCompositeParticipantViewData
, приложение использует CallCompositeRemoteOptions
экземпляр displayName
.
Настройка данных представления экрана
CallCompositeSetupScreenViewData
— это объект, который задает title
и subtitle
для панели навигации на экране настройки вызова. Если subtitle
он не определен, подзаголовок скрыт. Здесь необходимо задатьsubtitle
, title
но subtitle
необязательно, если title
задано значение. Этот класс хранится локально, и его сведения не отправляются на сервер.
Использование
Чтобы использовать CallCompositeLocalOptions
, передайте экземпляр CallCompositeParticipantViewData
и (или) CallCompositeSetupScreenViewData
и вставить CallCompositeLocalOptions
callComposite.launch
в .
val participantViewData: CallCompositeParticipantViewData = CallCompositeParticipantViewData()
.setAvatarBitmap((Bitmap) avatarBitmap)
.setScaleType((ImageView.ScaleType) scaleType)
.setDisplayName((String) displayName)
val setupScreenViewData: CallCompositeSetupScreenViewData = CallCompositeSetupScreenViewData()
.setTitle((String) title)
.setSubtitle((String) subTitle)
val localOptions: CallCompositeLocalOptions = CallCompositeLocalOptions()
.setParticipantViewData(participantViewData)
.setSetupScreenViewData(setupScreenViewData)
callComposite.launch(callLauncherActivity, remoteOptions, localOptions)
Представление установки | Представление взаимодействия с вызовами |
---|---|
Настройка представления удаленного участника
В некоторых случаях может потребоваться предоставить локальные переопределения для удаленных участников, чтобы разрешить пользовательские аватары и названия.
Процесс аналогичен локальному процессу участника, но данные задаются при присоединении участников к вызову. Разработчику необходимо добавить прослушиватель при присоединении удаленных участников к вызову, а затем вызвать метод, который будет установлен CallCompositeParticipantViewData
для этих удаленных пользователей.
Использование
Чтобы задать данные представления для удаленных участников, задайте.setOnRemoteParticipantJoinedHandler
При присоединении к удаленному участнику используйте setRemoteParticipantViewData
для callComposite
внедрения данных представления для удаленных участников. Идентификатор участника CommunicationIdentifier однозначно идентифицирует удаленного участника.
Вызовы для setRemoteParticipantViewData
возврата результата CallCompositeSetParticipantViewDataResult
, имеющего следующие значения:
CallCompositeSetParticipantViewDataResult.SUCCESS
CallCompositeSetParticipantViewDataResult.PARTICIPANT_NOT_IN_CALL
callComposite.addOnRemoteParticipantJoinedEventHandler { remoteParticipantJoinedEvent ->
remoteParticipantJoinedEvent.identifiers.forEach { identifier ->
// get displayName, bitmap for identifier
callComposite.setRemoteParticipantViewData(identifier,
CallCompositeParticipantViewData().setDisplayName("displayName")) // setAvatarBitmap for bitmap
}
}
Список участников |
---|
Дополнительные сведения см. в библиотеке пользовательского интерфейса iOS с открытым исходным кодом и образце кода приложения.
Внедрение данных локального участника
Библиотека пользовательского интерфейса предоставляет разработчикам возможность предоставлять настраиваемый интерфейс. При запуске можно внедрить необязательные локальные параметры данных. Этот объект может содержать изображение пользовательского интерфейса, представляющее аватар для отрисовки и отображаемое имя, которое при необходимости отображается. Ни одна из этих сведений не отправляется в Службы коммуникации Azure. Он хранится локально в библиотеке пользовательского интерфейса.
Локальные параметры
LocalOptions
— это модель данных, состоящая из ParticipantViewData
и SetupScreenViewData
.
Для ParticipantViewData
библиотеки пользовательского интерфейса по умолчанию отображаются displayName
сведения, внедренные в RemoteOptions
. Эти сведения отправляются на сервер Службы коммуникации Azure серверной части. При ParticipantViewData
внедрении участник displayName
и avatar
информация отображаются во всех компонентах аватара.
По SetupScreenViewData
умолчанию библиотека пользовательского интерфейса отображает программу установки в качестве заголовка, а подзаголовок — ничего. subtitle
И title
информация в SetupScreenViewData
перезаписи заголовка панели навигации и подзаголовок на экране предварительной подготовки соответственно.
Данные представления локальных участников
ParticipantViewData
— это объект, который задает displayName
avatar
образ пользовательского интерфейса для компонентов аватара. Этот класс внедряется в библиотеку пользовательского интерфейса для задания сведений аватара. Он хранится локально и никогда не отправляется на сервер.
Настройка данных представления экрана
SetupScreenViewData
— это объект, который задает title
и subtitle
для панели навигации на экране предварительной подготовки (также известное как представление установки). Если вы определяете SetupScreenViewData
, необходимо также указать title
, так как это обязательное поле. subtitle
Однако не требуется.
Если вы не определяете subtitle
, это скрыто. Этот класс хранится локально, и его сведения не отправляются на сервер.
Использование
// LocalOptions (data not sent to the server)
let localParticipantViewData = ParticipantViewData(avatar: <Some UIImage>,
displayName: "<DISPLAY_NAME>")
let localSetupScreenViewData = SetupScreenViewData(title: "<NAV_TITLE>",
subtitle: "<NAV_SUBTITLE>")
let localOptions = LocalOptions(participantViewData: localParticipantViewData,
setupScreenViewData: localSetupScreenViewData)
// RemoteOptions (data sent to the server)
let remoteOptions = RemoteOptions(for: .groupCall(groupId: UUID()),
credential: <Some CommunicationTokenCredential>,
displayName: "<DISPLAY_NAME>")
// Launch
callComposite.launch(remoteOptions: remoteOptions, localOptions: localOptions)
Представление установки | Представление взаимодействия с вызовами |
---|---|
Внедрение данных удаленного участника
При присоединении к удаленному участнику можно внедрить данные представления для удаленного участника. Данные представления этого участника могут содержать изображение пользовательского интерфейса, представляющее аватар для отрисовки и отображаемое имя, которое при необходимости отображается. Ни одна из этих сведений не отправляется в Службы коммуникации Azure. Он хранится локально в библиотеке пользовательского интерфейса.
Использование
Чтобы задать данные представления для удаленных участников, задайте onRemoteParticipantJoined
для обработчика событий завершение. При присоединении к удаленному участнику используйте set(remoteParticipantViewData:, for:, completionHandler:)
для CallComposite
внедрения данных представления для удаленных участников. Идентификатор CommunicationIdentifier
участника однозначно идентифицирует удаленного участника. Для возврата результата операции набора используется необязательный обработчик завершения.
callComposite.events.onRemoteParticipantJoined = { [weak callComposite] identifiers in
for identifier in identifiers {
// map identifier to displayName
let participantViewData = ParticipantViewData(displayName: "<DISPLAY_NAME>")
callComposite?.set(remoteParticipantViewData: participantViewData,
for: identifier) { result in
switch result {
case .success:
print("Set participant view data succeeded")
case .failure(let error):
print("Set participant view data failed with \(error)")
}
}
}
}
Список участников |
---|