Vložení vlastního datového modelu do knihovny uživatelského rozhraní pro aplikaci
Azure Communication Services používá model nezávislý na identitě, ve kterém můžou vývojáři přinést vlastní identity. Vývojáři můžou získat datový model a propojit ho s identitami Azure Communication Services. Datový model pro uživatele s největší pravděpodobností obsahuje informace, jako je zobrazované jméno, profilový obrázek nebo avatar a další podrobnosti. Vývojáři tyto informace používají k vytváření aplikací a platforem.
Knihovna uživatelského rozhraní usnadňuje vkládání uživatelského datového modelu do komponent uživatelského rozhraní. Když vykreslujete komponenty uživatelského rozhraní, zobrazí se uživatelům poskytnuté informace místo obecných informací ze služeb Azure Communication Services.
Požadavky
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Nasazený prostředek komunikační služby. Vytvořte prostředek komunikační služby.
- Přístupový token uživatele, který povolí klienta volání. Získejte přístupový token uživatele.
- Volitelné: Dokončení rychlého startu pro začátek práce se složenými knihovnami uživatelského rozhraní.
Nastavení injektáže
Podrobnou dokumentaci a rychlé starty týkající se knihovny webového uživatelského rozhraní najdete v článku o obsahu knihovny webového uživatelského rozhraní.
Další informace najdete v tématu Vlastní uživatelský datový model v knihovně webového uživatelského rozhraní.
Další informace najdete v opensourcové knihovně uživatelského rozhraní Androidu a vzorovém kódu aplikace.
Přizpůsobení zobrazení místního účastníka
Knihovna uživatelského rozhraní umožňuje vývojářům poskytovat přizpůsobené prostředí týkající se informací o účastníkech. Při spuštění můžete volitelně vložit data místních účastníků. Tato místní data nejsou sdílena se serverem a můžete je použít k přizpůsobení zobrazovaného jména a avatara místního uživatele.
Místní možnosti
CallCompositeLocalOptions
je datový model, který může mít CallCompositeParticipantViewData
a CallCompositeSetupScreenViewData
. Představuje místního účastníka.
Ve výchozím nastavení knihovna uživatelského rozhraní pro vzdálené účastníky zobrazuje displayName
informace vložené do RemoteOptions
souboru . Tyto informace se odesílají na back-endový server Azure Communication Services. Pokud CallCompositeParticipantViewData
se vloží, účastník displayName
a avatar
informace se zobrazí ve všech komponentách avataru místně.
Podobně platí, že pro CallCompositeSetupScreenViewData
title
a přepsání CallCompositeSetupScreenViewData
názvu a subtitle
podnadpisu navigačního panelu na obrazovce přednabídky. Ve výchozím nastavení knihovna uživatelského rozhraní zobrazí instalační program jako název a nic jako podnadpis.
Zobrazení dat místního účastníka
CallCompositeParticipantViewData
je třída, která nastavuje displayName
, avatarBitmap
a scaleType
pro avatar řízení. Tato třída se předává CallCompositeLocalOptions
, aby bylo možné přizpůsobit informace o zobrazení místních účastníků. Tato třída je uložena v objektu CallCompositeLocalOptions
, který představuje možnosti používané místně na zařízení, které provádí volání.
Tato instance displayName
se liší od displayName
informací předávaných prostřednictvím CallCompositeRemoteOptions
:
- Instance
CallCompositeParticipantViewData
displayName
se používá pouze místně jako přepsání. - Instance
CallCompositeRemoteOptions
displayName
se předává na server a sdílí se s ostatními účastníky.
Pokud instanci nezadáte CallCompositeParticipantViewData
displayName
, aplikace použije CallCompositeRemoteOptions
instanci displayName
.
Nastavení dat zobrazení obrazovky
CallCompositeSetupScreenViewData
je objekt, který nastavuje title
navigační subtitle
panel na obrazovce nastavení volání. Pokud subtitle
není definován, podnadpis je skrytý. Zde je nutné nastavit subtitle
, title
ale subtitle
je volitelné, pokud title
je nastavena. Tato třída je místně uložená a její informace se neodesílají na server.
Využití
Chcete-li použít CallCompositeLocalOptions
, předejte instanci CallCompositeParticipantViewData
a/nebo CallCompositeSetupScreenViewData
, a injektujte CallCompositeLocalOptions
do 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)
Zobrazení instalace | Zobrazení prostředí volání |
---|---|
![]() |
![]() |
Přizpůsobení zobrazení vzdáleného účastníka
V některých případech můžete chtít poskytnout místním přepsání vzdáleným účastníkům, aby povolili vlastní avatary a názvy.
Proces je podobný procesu místního účastníka, ale data se nastaví, když se účastníci připojí k hovoru. Jako vývojář byste museli přidat naslouchací proces, když se vzdálení účastníci připojí k hovoru, a pak zavolat metodu, která se nastaví CallCompositeParticipantViewData
pro tyto vzdálené uživatele.
Využití
Pokud chcete nastavit data zobrazení pro vzdálené účastníky, nastavte setOnRemoteParticipantJoinedHandler
. Při připojení ke vzdálenému účastníkovi slouží setRemoteParticipantViewData
callComposite
k vložení dat zobrazení pro vzdálené účastníky. Identifikátor účastníka CommunicationIdentifier jednoznačně identifikuje vzdáleného účastníka.
Volání pro setRemoteParticipantViewData
vrácení výsledku CallCompositeSetParticipantViewDataResult
, který má následující hodnoty:
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
}
}
Seznam účastníků |
---|
![]() |
Další informace najdete v opensourcové knihovně uživatelského rozhraní iOS a ukázkovém kódu aplikace.
Injektáž dat místního účastníka
Knihovna uživatelského rozhraní umožňuje vývojářům poskytovat přizpůsobené prostředí. Při spuštění můžete vložit volitelné možnosti místních dat. Tento objekt může obsahovat obrázek uživatelského rozhraní, který představuje avatar pro vykreslení a zobrazovaný název, který se má volitelně zobrazit. Žádné z těchto informací se neposílají do služeb Azure Communication Services. Uchovává se místně v knihovně uživatelského rozhraní.
Místní možnosti
LocalOptions
je datový model, který se skládá z ParticipantViewData
a SetupScreenViewData
.
Ve ParticipantViewData
výchozím nastavení knihovna uživatelského rozhraní zobrazí displayName
informace vložené do RemoteOptions
souboru . Tyto informace se odesílají na back-endový server Azure Communication Services. Pokud ParticipantViewData
se vloží, účastník displayName
a avatar
informace se zobrazí ve všech součástech avataru.
Ve SetupScreenViewData
výchozím nastavení knihovna uživatelského rozhraní zobrazí instalační program jako název a nic jako podnadpis. Informace title
a subtitle
informace přepíší SetupScreenViewData
název a podnadpis navigačního panelu na obrazovce přednabídky.
Zobrazení dat místního účastníka
ParticipantViewData
je objekt, který nastaví displayName
obrázek uživatelského avatar
rozhraní pro součásti avataru. Tato třída se vloží do knihovny uživatelského rozhraní a nastaví informace o avataru. Ukládá se místně a nikdy se neodesílají na server.
Nastavení dat zobrazení obrazovky
SetupScreenViewData
je objekt, který nastavuje title
navigační subtitle
panel na obrazovce premeetingu (označuje se také jako zobrazení nastavení). Pokud definujete SetupScreenViewData
, musíte také zadat title
, protože se jedná o povinné pole. Nevyžaduje se ale subtitle
.
Pokud ho nedefinujete subtitle
, je skrytý. Tato třída je místně uložená a její informace se neodesílají na server.
Využití
// 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)
Zobrazení instalace | Zobrazení prostředí volání |
---|---|
![]() |
![]() |
Injektáž dat vzdáleného účastníka
Při připojení ke vzdálenému účastníkovi můžete vložit data zobrazení vzdáleného účastníka. Tato data zobrazení účastníků můžou obsahovat obrázek uživatelského rozhraní, který představuje avatara pro vykreslení a zobrazovaný název, který se má volitelně zobrazit. Žádné z těchto informací se neposílají do služeb Azure Communication Services. Uchovává se místně v knihovně uživatelského rozhraní.
Využití
Pokud chcete nastavit data zobrazení pro vzdálené účastníky, nastavte onRemoteParticipantJoined
dokončení obslužné rutiny události. Při připojení ke vzdálenému účastníkovi slouží set(remoteParticipantViewData:, for:, completionHandler:)
CallComposite
k vložení dat zobrazení pro vzdálené účastníky. Identifikátor CommunicationIdentifier
účastníka jednoznačně identifikuje vzdáleného účastníka. K vrácení výsledku operace sady použijete volitelnou obslužnou rutinu dokončení.
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)")
}
}
}
}
Seznam účastníků |
---|
![]() |