Rövid útmutató: A felhasználói felületi kódtár használatának első lépései
Ismerkedjen meg az Azure Communication Services felhasználói felületi kódtárával, hogy gyorsan integrálhassa a kommunikációs szolgáltatásokat az alkalmazásokba. Ebben a rövid útmutatóban megtudhatja, hogyan integrálhatja a felhasználói felületi kódtár-összetettségeket egy alkalmazásba, és hogyan állíthatja be a felhasználói élményt az alkalmazás felhasználói számára.
A Communication Services felhasználói felületi kódtára teljes körű kommunikációs élményt nyújt közvetlenül az alkalmazásban. Gondoskodik a híváshoz való csatlakozásról, és beállítja a felhasználó részvételét a hívásban a színfalak mögött. Fejlesztőként aggódnia kell amiatt, hogy az alkalmazás felhasználói élményében hol szeretné elindítani a kommunikációs felületet. Az összetett folyamat végigvezeti a felhasználót az eszközeik beállításán, a híváshoz való csatlakozáson és a részvételen, valamint a többi résztvevő megjelenítésén.
Tekintse meg ezt a videót az áttekintéshez:
Feljegyzés
A webes felhasználói felületi kódtár részletes dokumentációjához és rövid útmutatóihoz látogasson el a Webes felhasználói felületi könyvtár mesekönyvbe.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Üzembe helyezett Communication Services-erőforrás. Hozzon létre egy Communication Services-erőforrást.
- Azure Communication Services-jogkivonat. Lásd ezt a példát
A következő rövid útmutatók érhetők el
Ehhez a rövid útmutatóhoz szerezze be a minta Android-alkalmazást az Android nyílt forráskód Azure Communication Services felhasználói felületi kódtárában.
Előfeltételek
- Egy Azure-fiók és egy aktív Azure-előfizetés. Fiók ingyenes létrehozása.
- Android Studiót futtató operációs rendszer.
- Üzembe helyezett Azure Communication Services-erőforrás.
- Egy Azure Communication Services hozzáférési jogkivonat.
A projekt előkészítése
A gyorsútmutató-projekt beállításához töltse ki az alábbi szakaszokat.
Új Android-projekt létrehozása
Az Android Studióban hozzon létre egy új projektet:
A Fájl menüben válassza az Új>projekt lehetőséget.
Az Új projektben válassza az Üres tevékenység projektsablont.
Válassza a Tovább lehetőséget.
Az Üres tevékenység területen nevezze el a projekt UILibraryQuickStart nevét. Nyelv esetén válassza a Java/Kotlin lehetőséget. A minimális SDK-hoz válassza az API 26: Android 8.0 (Oreo) vagy újabb verzióját.
Válassza a Befejezés lehetőséget.
A csomagok telepítése
Töltse ki a következő szakaszokat a szükséges alkalmazáscsomagok telepítéséhez.
Függőség hozzáadása
Az alkalmazásszintű UILibraryQuickStart/app/build.gradle fájlban (az alkalmazásmappában) adja hozzá a következő függőséget:
dependencies {
...
implementation 'com.azure.android:azure-communication-ui-calling:+'
...
}
Maven-adattárak hozzáadása
A kódtár integrálásához két Maven-adattárra van szükség:
- MavenCentral
- Az Azure-csomagtárház
Az adattárak hozzáadása:
A projekt Gradle-szkriptjeiben győződjön meg arról, hogy a következő adattárak vannak hozzáadva. Az Android Studio (2020.*)
repositories
az alattdependencyResolutionManagement(Gradle version 6.8 or greater)
találhatósettings.gradle
. Az Android Studio korábbi verziói (4.*)repositories
projektszintenbuild.gradle
, aallprojects{}
.// dependencyResolutionManagement repositories { ... mavenCentral() maven { url "https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1" } ... }
Szinkronizálja a projektet a Gradle-fájlokkal. A projekt szinkronizálásához a Fájl menüben válassza a Projekt szinkronizálása Gradle-fájlokkal lehetőséget.
Gomb hozzáadása Activity_main.xml
Az app/src/main/res/layout/activity_main.xml elrendezésfájlban adja hozzá a következő kódot, hogy létrehozhasson egy gombot az összetettség elindításához:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/startButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Launch"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Az összetett inicializálása
Az összetett inicializálása:
Lépjen a következőre:
MainActivity
.Adja hozzá a következő kódot az összetett összetevők meghíváshoz való inicializálásához. Cserélje le
"GROUP_CALL_ID"
a hívás csoportazonosítóját. Cserélje le"DISPLAY_NAME"
a nevét. Cserélje le"USER_ACCESS_TOKEN"
a jogkivonatot.
package com.example.uilibraryquickstart
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import com.azure.android.communication.common.CommunicationTokenCredential
import com.azure.android.communication.common.CommunicationTokenRefreshOptions
import com.azure.android.communication.ui.calling.CallComposite
import com.azure.android.communication.ui.calling.CallCompositeBuilder
import com.azure.android.communication.ui.calling.models.CallCompositeGroupCallLocator
import com.azure.android.communication.ui.calling.models.CallCompositeJoinLocator
import java.util.UUID
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val startButton: Button = findViewById(R.id.startButton)
startButton.setOnClickListener { l -> startCallComposite() }
}
private fun startCallComposite() {
val communicationTokenRefreshOptions = CommunicationTokenRefreshOptions({ fetchToken() }, true)
val communicationTokenCredential = CommunicationTokenCredential(communicationTokenRefreshOptions)
val locator: CallCompositeJoinLocator = CallCompositeGroupCallLocator(UUID.fromString("GROUP_CALL_ID"))
val callComposite: CallComposite = CallCompositeBuilder()
.applicationContext(this.applicationContext)
.credential(communicationTokenCredential)
.displayName("DISPLAY_NAME").build()
callComposite.launch(this, locator)
}
private fun fetchToken(): String? {
return "USER_ACCESS_TOKEN"
}
}
A kód futtatása
Az Android Studióban hozza létre és indítsa el az alkalmazást:
- Válassza a Launch (Indítás) lehetőséget.
- Fogadja el az engedélyeket, majd válassza ki az eszköz, a mikrofon és a videó beállításait.
- Válassza a Csatlakozás hívás lehetőséget.
Objektummodell
Az alábbi osztályok és felületek kezelik az Azure Communication Services Android felhasználói felületének néhány fő funkcióját:
Név | Leírás |
---|---|
CallComposite | Összetett összetevő, amely a résztvevők katalógusával és vezérlőivel jeleníti meg a hívási élményt |
CallCompositeBuilder | A beállításokkal rendelkező buildelő CallComposite |
CallCompositeJoinMeetingLocator | Beadott CallComposite indítás csoporthívás indításához |
CallCompositeTeamsMeetingLinkLocator | Indításra átadva CallComposite a Microsoft Teams-értekezlethez való csatlakozáshoz |
CallCompositeLocalizationOptions | Az összetett nyelv beállításához nem kötelezőként CallCompositeBuilder beszúrva |
Felhasználói felületi kódtár funkciói
Szerezze be a kódot az Android-alkalmazás kulcskommunikációs funkcióinak létrehozásához.
Hitelesítés beállítása
A hitelesítés beállításához a startCallComposite
függvényen belül inicializáljon egy példányt CommunicationTokenCredential
. Cserélje le "USER_ACCESS_TOKEN"
a hozzáférési jogkivonatra.
val callComposite: CallComposite = CallCompositeBuilder().build()
val communicationTokenRefreshOptions = CommunicationTokenRefreshOptions(this::fetchToken, true)
val communicationTokenCredential = CommunicationTokenCredential(communicationTokenRefreshOptions)
CallComposite létrehozása
A függvényen belüli startCallComposite
létrehozáshoz CallComposite
inicializáljon egy példányt CallCompositeBuilder
alkalmazáskörnyezettel, hitelesítő adatokkal és megjelenítendő névvel.
val callComposite: CallComposite = CallCompositeBuilder()
.applicationContext(this.applicationContext)
.credential(communicationTokenCredential)
.displayName("DISPLAY_NAME").build()
Csoporthívás beállítása
Csoporthívás beállításához inicializáljon egy CallCompositeGroupCallLocator
.
Csatlakozás Teams-értekezlethez
A Teams-értekezletekhez két mechanizmussal csatlakozhat:
- Teams-értekezlet URL-címe vagy Teams-értekezlet rövid URL-címe
- Teams-értekezlet azonosítója és pin-kódja
A Teams-értekezlet hivatkozása a Graph dokumentációjában részletezett Graph API-k használatával kérhető le.
A Communication Services Calling SDK egy teljes Teams-értekezlethivatkozást fogad el. Ez a hivatkozás az onlineMeeting
erőforrás részeként jelenik meg, amely ajoinWebUrl
tulajdonság alatt érhető el. A szükséges értekezlet-információkat a Teams-értekezlet-összehívásban található Bekapcsolódás értekezlet URL-címéről is lekérheti.
Csatlakozás Teams-értekezlet URL-címén keresztül
Microsoft Teams-értekezlethez való csatlakozáshoz inicializáljon egy CallCompositeTeamsMeetingLinkLocator
.
Csatlakozás Teams-értekezletazonosítóval és pin-kóddal
A CallCompositeTeamsMeetingLinkLocator
rendszer egy értekezlet azonosítóját és pin-kódját használó értekezletet keres. Ezek a Teams-értekezletek csatlakozási adatai között találhatók.
A Teams-értekezlet-azonosító 12 karakter hosszú, és numerikus számjegyekből áll, három (azaz 000 000 000 000
).
A pin-kód 6 betűből áll (azaz aBcDeF
). A pin-kód megkülönbözteti a kis- és nagybetűkét.
val locator = CallCompositeTeamsMeetingIdLocator("TEAMS_MEETING_ID", "TEAMS_MEETING_PASSCODE")
Szobahívás beállítása
Azure Communication Services-szobák hívásának beállításához inicializáljon egy CallCompositeRoomLocator
szobaazonosítót.
A beállítási képernyőn a kamerát és a mikrofont minden olyan résztvevő számára engedélyezi, CallComposite
aki bármilyen helyiségszerepkörrel dolgozik. A rendszer lekéri a tényleges naprakész résztvevői szerepkört és képességeket az Azure Communication Servicesből a hívás csatlakoztatása után.
A Szobákról további információt a Szobák rövid útmutatója című témakörben talál, amelyből megtudhatja, hogyan hozhat létre és kezelhet egy helyiséget.
1:N kimenő hívás és bejövő hívás leküldéses értesítésének beállítása
A felhasználói felületi kódtár támogatja az egy-az-egyhez voIP-hívást, amely a felhasználókat kommunikációs azonosító alapján tárcsázza. A bejövő hívás felhasználói felületi kódtára támogatja a PUSH-értesítések regisztrálását is. Ha többet szeretne megtudni az Android- és iOS-platform integrációjáról, valamint az API használatáról, olvassa el az Egy-az-egyhez hívás kezdeményezése és a PUSH-értesítések fogadása című témakört .
Az összetett indítása
A hívás felhasználói felületének elindításához a startCallComposite
függvényen belül hívja meg launch
a példányt CallComposite
.
Feliratkozás a CallComposite hibaeseményeire
A hibaesemények fogadásához hívja fel setOnErrorHandler
a következőt CallComposite
: .
A hibakezelő a következő errorCode
értékeket küldheti el:
CallCompositeErrorCode.CALL_JOIN_FAILED
CallCompositeErrorCode.CALL_END_FAILED
CallCompositeErrorCode.TOKEN_EXPIRED
CallCompositeErrorCode.CAMERA_FAILURE
CallCompositeErrorCode.MICROPHONE_PERMISSION_NOT_GRANTED
CallCompositeErrorCode.NETWORK_CONNECTION_NOT_AVAILABLE
Az alábbi példa egy sikertelen összetett esemény hibaeseményét mutatja be.
callComposite.addOnErrorEventHandler { callCompositeErrorEvent ->
println(callCompositeErrorEvent.errorCode)
}
Témakonfiguráció alkalmazása
Az összetett elem elsődleges színének módosításához hozzon létre egy új témastílust src/main/res/values/themes.xml és src/main/res/values-night/themes.xml szülőtémaként AzureCommunicationUICalling.Theme
. A téma alkalmazásához szúrja be a téma azonosítóját a következőbe CallCompositeBuilder
:
<style name="MyCompany.CallComposite" parent="AzureCommunicationUICalling.Theme">
<item name="azure_communication_ui_calling_primary_color">#27AC22</item>
<item name="azure_communication_ui_calling_primary_color_tint10">#5EC65A</item>
<item name="azure_communication_ui_calling_primary_color_tint20">#A7E3A5</item>
<item name="azure_communication_ui_calling_primary_color_tint30">#CEF0CD</item>
</style>
val callComposite: CallComposite =
CallCompositeBuilder()
.theme(R.style.MyCompany_CallComposite)
.build()
Honosítási konfiguráció alkalmazása
Az összetett nyelv módosításához használja CallCompositeSupportedLocale
a létrehozást CallCompositeLocalizationOptions
a következővel Locale
: . A nyelv alkalmazásához injektálja a honosítási konfigurációt a következőbe CallCompositeBuilder
: . Alapértelmezés szerint minden szövegfelirat angol (en
) sztringeket használ. A értékének beállításához más értéket language
is CallCompositeLocalizationOptions
megadhat. A felhasználói felületi kódtár alapértelmezés szerint a felhasználói felület összetevőivel használható értékek készletét language
tartalmazza. CallCompositeSupportedLocale
támogatja a területi beállításokat. Az angol területi beállítás eléréséhez például használhatja CallCompositeSupportedLocale.EN
a következőt: CallCompositeSupportedLocale.getSupportedLocales()
A támogatott nyelvek területi objektumainak listáját tartalmazza.
import com.azure.android.communication.ui.calling.models.CallCompositeLocalizationOptions
import com.azure.android.communication.ui.calling.models.CallCompositeSupportedLocale
// CallCompositeSupportedLocale provides list of supported locale
val callComposite: CallComposite =
CallCompositeBuilder().localization(
CallCompositeLocalizationOptions(CallCompositeSupportedLocale.EN)
).build()
Feliratkozás a CallComposite hívásállapotának módosult eseményére
A hívásállapot módosult eseményeinek fogadásához hívja meg a () addOnCallStateChangedEventHandler
metódust CallComposite
.
Az alábbi példa egy módosult hívásállapot eseményét mutatja be.
callComposite.addOnCallStateChangedEventHandler { callStateChangedEvent ->
println(callStateChangedEvent.code)
}
A CallComposite elvetése és az elutasított eseményre való feliratkozás
Az elbocsátás fogadásához hívja fel addOnDismissedEventHandler
a .CallComposite
A CallComposite bezárásához hívja meg a .dismiss
Az alábbi példa egy módosult hívásállapot eseményét mutatja be.
callComposite.addOnDismissedEventHandler { callCompositeDismissedEvent ->
println(callCompositeDismissedEvent.errorCode)
}
callComposite.dismiss()
További funkciók
A használati esetek listája részletes információkat tartalmaz a további funkciókról.
Értesítések hozzáadása a mobilalkalmazáshoz
Az Azure Communication Services integrálható az Azure Event Grid és az Azure Notification Hubs szolgáltatással, így leküldéses értesítéseket adhat hozzá az azure-beli alkalmazásokhoz. Leküldéses értesítések használatával adatokat küldhet az alkalmazásból a felhasználók mobileszközére. A leküldéses értesítések megjeleníthetnek egy párbeszédpanelt, lejátszhatnak egy hangot, vagy megjeleníthetnek egy bejövő hívás felhasználói felületét.
A rövid útmutatóhoz tartozó iOS-mintaalkalmazást az iOS-hez készült nyílt forráskód Azure Communication Services felhasználói felületi kódtárában szerezheti be.
Előfeltételek
- Egy Azure-fiók és egy aktív Azure-előfizetés. Fiók ingyenes létrehozása.
- Egy Xcode 13-at vagy újabb verziót futtató Mac gép, valamint egy érvényes fejlesztői tanúsítvány, amely telepítve van a kulcskarikában. A cocoaPodsot is telepíteni kell a függőségek lekéréséhez.
- Üzembe helyezett Azure Communication Services-erőforrás.
- Egy Azure Communication Services hozzáférési jogkivonat.
A projekt előkészítése
A gyorsútmutató-projekt beállításához töltse ki az alábbi szakaszokat.
Új Xcode-projekt létrehozása
Az Xcode-ban hozzon létre egy új projektet:
A Fájl menüben válassza az Új>projekt lehetőséget.
Az Új projekt sablonjának kiválasztása területen válassza ki az iOS-platformot , és válassza ki az alkalmazásalkalmazás-sablont . A rövid útmutató az UIKit-történeteket használja. A rövid útmutató nem hoz létre teszteket, így törölheti a Tesztek belefoglalása jelölőnégyzetet.
Az új projekt beállítási beállításai között adja meg a termék nevét, és írja be a UILibraryQuickStart nevet. A felülethez válassza a Storyboard lehetőséget.
A csomag és a függőségek telepítése
(Nem kötelező) Az M1-et tartalmazó MacBook esetén telepítse és engedélyezze a Rosetta-t az Xcode-ban.
A projekt gyökérkönyvtárában futtassa
pod init
a podfájl létrehozásához. Ha hibát tapasztal, frissítse a CocoaPodsot az aktuális verzióra.Adja hozzá a következő kódot a Podfile-hoz. Cserélje le
UILibraryQuickStart
a projekt nevét.platform :ios, '15.0' target 'UILibraryQuickStart' do use_frameworks! pod 'AzureCommunicationUICalling' end
Futtassa az
pod install --repo-update
parancsot.Az Xcode-ban nyissa meg a generated.xcworkspace* fájlt.
Hozzáférés kérése az eszköz hardveréhez
Az eszköz hardverének( beleértve a mikrofont és a kamerát) eléréséhez frissítse az alkalmazás információs tulajdonságlistáját. Állítsa a társított értéket egy sztringre, amely szerepel a párbeszédpanelen, amellyel a rendszer hozzáférést kér a felhasználótól.
Kattintson a jobb gombbal a
Info.plist
projektfa bejegyzésére, és válassza a Megnyitás forráskódként>lehetőséget. Adja hozzá a következő sorokat a legfelső szintű<dict>
szakaszhoz, majd mentse a fájlt.<key>NSCameraUsageDescription</key> <string></string> <key>NSMicrophoneUsageDescription</key> <string></string>
Íme egy példa egy
Info.plist
Xcode-fájl forráskódjára:Ha ellenőrizni szeretné, hogy az eszközengedély-kérelmek helyesen lettek-e hozzáadva, válassza a Megnyitás tulajdonságlistaként>lehetőséget. Ellenőrizze, hogy az információs tulajdonságlista az alábbi példához hasonlóan néz-e ki:
A Bitcode kikapcsolása
Az Xcode projekt Buildbeállítások csoportjában állítsa a Bitkód engedélyezése beállítást Nem értékre. A beállítás megkereséséhez módosítsa a szűrőt alapszintűről az Összesre, vagy használja a keresősávot.
Az összetett inicializálása
Az összetett inicializálása:
Lépjen a következőre:
ViewController
.Adja hozzá a következő kódot a hívás összetett összetevőinek inicializálásához. Cserélje le
<GROUP_CALL_ID>
a hívás csoportazonosítóját, vagyUUID()
hozzon létre egy csoportazonosítót a híváshoz. Cserélje le<DISPLAY_NAME>
a nevét. (A karakterlánc hosszának<DISPLAY_NAME>
korlátja 256 karakter.) Cserélje le<USER_ACCESS_TOKEN>
a hozzáférési jogkivonatra.import UIKit import AzureCommunicationCalling import AzureCommunicationUICalling class ViewController: UIViewController { private var callComposite: CallComposite? override func viewDidLoad() { super.viewDidLoad() let button = UIButton(frame: CGRect(x: 100, y: 100, width: 200, height: 50)) button.contentEdgeInsets = UIEdgeInsets(top: 10.0, left: 20.0, bottom: 10.0, right: 20.0) button.layer.cornerRadius = 10 button.backgroundColor = .systemBlue button.setTitle("Start Experience", for: .normal) button.addTarget(self, action: #selector(startCallComposite), for: .touchUpInside) button.translatesAutoresizingMaskIntoConstraints = false self.view.addSubview(button) button.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true button.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true } @objc private func startCallComposite() { let callCompositeOptions = CallCompositeOptions(displayName: "<DISPLAY_NAME>") let communicationTokenCredential = try! CommunicationTokenCredential(token: "<USER_ACCESS_TOKEN>") callComposite = CallComposite(credential: communicationTokenCredential, withOptions: callCompositeOptions) callComposite?.launch(locator: .groupCall(groupId: UUID(uuidString: "<GROUP_CALL_ID>")!)) } }
A kód futtatása
Az alkalmazás iOS-szimulátoron való létrehozásához és futtatásához válassza a Termékfuttatás> lehetőséget, vagy használja az (⌘-R) billentyűparancsot. Ezután próbálja ki a hívási élményt a szimulátoron:
Válassza a Start Felület lehetőséget.
Fogadja el a hangengedélyeket, majd válassza ki az eszköz-, mikrofon- és videobeállításokat.
Válassza a Hívás indítása lehetőséget.
Objektummodell
Az alábbi osztályok és felületek kezelik az Azure Communication Services felhasználói felületének ügyfélkódtárának néhány fő funkcióját:
Név | Leírás |
---|---|
CallComposite | A résztvevők katalógusát és vezérlőit tartalmazó hívási élményt megjelenítő összetevő |
CallCompositeOptions | Beállítások olyan beállításokhoz, mint a témák és az eseménykezelés |
ThemeOptions | Az összetett téma testreszabási beállításai |
LocalizationOptions | Az összetett nyelvi beállításai |
Felhasználói felületi kódtár funkciói
Szerezze be a kódot az iOS-alkalmazás kulcskommunikációs funkcióinak létrehozásához.
Hitelesítés beállítása
A hitelesítés beállításához a startCallComposite
függvényen belül inicializáljon egy példányt CommunicationTokenCredential
. Cserélje le <USER_ACCESS_TOKEN>
a hozzáférési jogkivonatra.
let communicationTokenCredential = try! CommunicationTokenCredential(token: "<USER_ACCESS_TOKEN>")
Ha még nem rendelkezik hozzáférési jogkivonattal, hozzon létre egy Azure Communication Services hozzáférési jogkivonatot.
CallComposite létrehozása
A függvényen belüli létrehozáshoz CallComposite
inicializáljon egy példányt CallCompositeOptions
opcionális <DISPLAY_NAME>
és egy példánysalCommunicationTokenCredential
:startCallComposite
@objc private func startCallComposite() {
let callCompositeOptions = CallCompositeOptions(displayName: "<DISPLAY_NAME>")
let communicationTokenCredential = try! CommunicationTokenCredential(token: "<USER_ACCESS_TOKEN>")
callComposite = CallComposite(credential: communicationTokenCredential, withOptions: callCompositeOptions)
}
Csoporthívás beállítása
Csoporthívás beállításához inicializáljon egy lokátort .groupCall
a startCallComposite
függvényen belül. Cserélje le <GROUP_CALL_ID>
a hívás csoportazonosítóját.
// let uuid = UUID() to create a new call
let uuid = UUID(uuidString: "<GROUP_CALL_ID>")!
let locator = .groupCall(groupId: uuid)
A csoportazonosító hívásokhoz való használatáról további információt a Hívások kezelése című témakörben talál.
Csatlakozás Teams-értekezlethez
A Teams-értekezletekhez két mechanizmussal csatlakozhat:
- Teams-értekezlet URL-címe vagy Teams-értekezlet rövid URL-címe
- Teams-értekezlet azonosítója és pin-kódja
A Teams-értekezlet hivatkozása a Graph dokumentációjában részletezett Graph API-k használatával kérhető le.
A Communication Services Calling SDK egy teljes Teams-értekezlethivatkozást fogad el. Ez a hivatkozás az onlineMeeting
erőforrás részeként jelenik meg, amely ajoinWebUrl
tulajdonság alatt érhető el. A szükséges értekezlet-információkat a Teams-értekezlet-összehívásban található Bekapcsolódás értekezlet URL-címéről is lekérheti.
Csatlakozás Teams-értekezlet URL-címén keresztül
Microsoft Teams-értekezlethez való csatlakozáshoz a startCallComposite
függvényen belül inicializáljon egy példányt a .teamsMeeting
lokátorhoz. Cserélje le <TEAMS_MEETING_LINK>
a Teams-értekezlet hivatkozására a híváshoz. Cserélje le <DISPLAY_NAME>
a nevét.
let locator = .teamsMeeting(teamsLink: "<TEAMS_MEETING_LINK>")
Csatlakozás Teams-értekezletazonosítóval és pin-kóddal
A teamMeetingId
rendszer egy értekezlet azonosítóját és pin-kódját használó értekezletet keres. Ezek a Teams-értekezletek csatlakozási adatai között találhatók.
A Teams-értekezlet-azonosító 12 karakter hosszú, és numerikus számjegyekből áll, három (azaz 000 000 000 000
).
A pin-kód 6 betűből áll (azaz aBcDeF
). A pin-kód megkülönbözteti a kis- és nagybetűkét.
let locator = .teamsMeetingId(meetingId: "<TEAMS_MEETING_ID>", meetingPasscode: "<TEAMS_MEETING_PASSCODE>" )
Szobahívás beállítása
Azure Communication Services-szobák hívásának beállításához inicializáljon egy CallCompositeRoomLocator
szobaazonosítót.
A beállítási képernyőn CallComposite
a kamera és a mikrofon minden helyiségszerepkörrel rendelkező résztvevő számára engedélyezve lesz. A rendszer lekéri a tényleges naprakész résztvevői szerepkört és képességeket az Azure Communication Servicesből a hívás csatlakoztatása után.
További információ a Szobákról: A helyiségek gyorsútmutatója című témakörből megtudhatja, hogyan hozhat létre és kezelhet egyet.
let locator = .roomCall(roomId: "<ROOM_ID>")
1:N kimenő hívás és bejövő hívás leküldéses értesítésének beállítása
A felhasználói felületi kódtár támogatja az egy-az-egyhez voIP-hívást, amely a felhasználókat kommunikációs azonosító alapján tárcsázza. A bejövő hívás felhasználói felületi kódtára támogatja a PUSH-értesítések regisztrálását is. Ha többet szeretne megtudni az Android- és iOS-platform integrációjáról, valamint az API használatáról, olvassa el az Egy-az-egyhez hívás kezdeményezése és a PUSH-értesítések fogadása című témakört .
Az összetett indítása
A függvényen startCallComposite
belül hívja meg launch
a példányt CallComposite
:
callComposite?.launch(locator: locator)
Feliratkozás az eseményekre
Az összetett eseményekhez lezárások implementálhatók. A következő errorCode-okat küldheti el a hibakezelőnek:
callJoin
callEnd
cameraFailure
tokenExpired
microphonePermissionNotGranted
networkConnectionNotAvailable
Az alábbi példa egy sikertelen összetett esemény hibaeseményét mutatja be:
callComposite?.events.onError = { error in
print("CallComposite failed with error:\(error)")
}
Témabeállítások alkalmazása
Az alkalmazás kommunikációs felületének testreszabásához hozzon létre egyéni témabeállításokat, amelyek implementálják a protokollt ThemeOptions
. Az új osztály egy példányának belefoglalása a következőbe CallCompositeOptions
:
class CustomThemeOptions: ThemeOptions {
var primaryColor: UIColor {
return UIColor.red
}
}
let callCompositeOptions = CallCompositeOptions(theme: CustomThemeOptions())
A témakör működésével kapcsolatos további információkért tekintse meg a témakört ismertető útmutatót.
Honosítási beállítások alkalmazása
Az összetett nyelv módosításához hozzon létre egyéni honosítási beállításokat, és vegye fel őket a fájlba CallCompositeOptions
. Alapértelmezés szerint minden szövegfelirat angol (SupportedLocale.en
) sztringeket használ. A értékének beállításához más értéket locale
is LocalizationOptions
megadhat. A felhasználói felületi kódtár alapértelmezés szerint olyan értékkészletet locale
tartalmaz, amelyet a felhasználói felület összetevőivel használhat. SupportedLocale.values
az összes támogatott nyelv listáját tartalmazza.
Az alábbi példában az összetettség francia nyelvre van honosítva (fr
):
// Option1: Use IntelliSense to get locales UI Library supports.
let localizationOptions = LocalizationOptions(locale: SupportedLocale.frFR)
// Option2: If UI Library doesn't support the locale you set, the Swift Locale struct defaults to English.
let localizationOptions = LocalizationOptions(locale: Locale(identifier: "fr-FR"))
let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
A honosításról és a támogatott nyelvek listájáról további információt a honosítási útmutatóban talál.
Feliratkozás a CallComposite hívásállapotának módosult eseményére
Az összetett eseményekhez lezárások implementálhatók. A rendszer elküldi a hívásállapot-módosítást a hívásállapot-kezelőnek.
Az alábbi példa egy módosult hívásállapot eseményét mutatja be.
callComposite?.events.onCallStateChanged = { callStateEvent in
print("CallComposite call state changed:\(callStateEvent.requestString)")
}
A CallComposite elvetése és az elutasított eseményre való feliratkozás
A CallComposite bezárásához hívja meg a .dismiss
A következő elbocsátási eseményt küldi el a rendszer az elutasított hívásösszesített hívás esetén:
callComposite?.events.onDismissed = { dismissed in
print("CallComposite dismissed:\(dismissed.errorCode)")
}
callComposite.dismiss()
További funkciók
A használati esetek listája részletes információkat tartalmaz a további funkciókról.
Értesítések hozzáadása a mobilalkalmazáshoz
Az Azure Communication Services integrálható az Azure Event Grid és az Azure Notification Hubs szolgáltatással, így leküldéses értesítéseket adhat hozzá az azure-beli alkalmazásokhoz. Leküldéses értesítések használatával adatokat küldhet az alkalmazásból a felhasználók mobileszközére. A leküldéses értesítések megjeleníthetnek egy párbeszédpanelt, lejátszhatnak egy hangot, vagy megjeleníthetnek egy bejövő hívás felhasználói felületét.
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Communication Services-előfizetést, törölheti az erőforrást vagy az erőforráscsoportot.
Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.
További információ az erőforrások tisztításáról.