Megosztás a következőn keresztül:


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

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

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:

  1. A Fájl menüben válassza az Új>projekt lehetőséget.

  2. Az Új projektben válassza az Üres tevékenység projektsablont.

    Képernyőkép az Android Studióban az Új projekt párbeszédpanelről, amelyen az Üres tevékenység van kiválasztva.

  3. Válassza a Tovább lehetőséget.

  4. 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.

  5. Válassza a Befejezés lehetőséget.

    Képernyőkép az új projektbeállításokról és a kijelölt Befejezés gombról.

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:

  1. 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 alatt dependencyResolutionManagement(Gradle version 6.8 or greater)találhatósettings.gradle. Az Android Studio korábbi verziói (4.*) repositories projektszinten build.gradle, a allprojects{}.

    // dependencyResolutionManagement
    repositories {
        ...
        mavenCentral()
        maven {
            url "https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1"
        }
        ...
    }
    
  2. 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:

  1. Lépjen a következőre: MainActivity .

  2. 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:

  1. Válassza a Launch (Indítás) lehetőséget.
  2. Fogadja el az engedélyeket, majd válassza ki az eszköz, a mikrofon és a videó beállításait.
  3. Válassza a Csatlakozás hívás lehetőséget.

GIF-animáció, amely bemutatja, hogyan fut a projekt egy Android-eszközön.

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 CallCompositeinicializá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.

val locator = CallCompositeGroupCallLocator(UUID.fromString("GROUP_CALL_ID"))

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.

val locator = CallCompositeTeamsMeetingLinkLocator("TEAMS_MEETING_LINK")

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.

val locator = CallCompositeRoomLocator("<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 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 .

callComposite.launch(activityContext, locator)

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 languageis 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.ENa 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

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:

  1. A Fájl menüben válassza az Új>projekt lehetőséget.

  2. 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.

    Képernyőkép az Xcode új projekt párbeszédpanelről, amelyen az iOS és az alkalmazássablon van kiválasztva.

  3. 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.

    Képernyőkép az új projektbeállítások megadásáról az Xcode-ban.

A csomag és a függőségek telepítése

  1. (Nem kötelező) Az M1-et tartalmazó MacBook esetén telepítse és engedélyezze a Rosetta-t az Xcode-ban.

  2. 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.

  3. 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
    
  4. Futtassa az pod install --repo-update parancsot.

  5. 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.

  1. 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:

    Képernyőkép egy Xcode-fájl info plist forráskódjára.

  2. 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:

    Képernyőkép a kamera és a mikrofon eszközének adatairól az Xcode-ban.

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.

Képernyőkép a Bitcode kikapcsolásához a Buildbeállítások beállításról.

Az összetett inicializálása

Az összetett inicializálása:

  1. Lépjen a következőre: ViewController .

  2. 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, vagy UUID() 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:

  1. Válassza a Start Felület lehetőséget.

  2. Fogadja el a hangengedélyeket, majd válassza ki az eszköz-, mikrofon- és videobeállításokat.

  3. Válassza a Hívás indítása lehetőséget.

GIF-animáció, amely bemutatja az iOS-alkalmazás rövid útmutatójának végső megjelenését és hangulatát.

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 CallCompositeinicializá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 localeis 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.