Hızlı Başlangıç: Kullanıcı Arabirimi Kitaplığı'yla çalışmaya başlama
İletişim deneyimlerini uygulamalarınızla hızla tümleştirmek için Azure İletişim Hizmetleri kullanıcı arabirimi kitaplığını kullanmaya başlayın. Bu hızlı başlangıçta UI Kitaplığı bileşiklerini bir uygulamayla tümleştirmeyi ve uygulama kullanıcılarınız için deneyimi ayarlamayı öğrenin.
İletişim Hizmetleri Kullanıcı Arabirimi Kitaplığı, doğrudan uygulamanızda tam bir iletişim deneyimi oluşturur. Aramaya bağlanmayı üstlenir ve kullanıcının arka planda aramaya katılımını ayarlar. Geliştirici olarak, uygulamanızın kullanıcı deneyiminde iletişim deneyiminin nerede başlatılmasını istediğiniz konusunda endişelenmeniz gerekir. Bileşik, kullanıcıyı cihazlarını ayarlama, aramaya katılma ve buna katılma ve diğer katılımcıları işleme yoluyla alır.
Genel bakış için bu videoya bakın:
Dekont
Web Kullanıcı Arabirimi Kitaplığı hakkında ayrıntılı belgeler ve hızlı başlangıçlar için Web UI Kitaplığı Hikaye Kitabı'nı ziyaret edin.
Ön koşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Dağıtılan bir İletişim Hizmetleri kaynağı. İletişim Hizmetleri kaynağı oluşturun.
- Azure İletişim Hizmetleri Belirteci. Örneği inceleyin
Aşağıdaki hızlı başlangıçlara erişebilirsiniz
Android için açık kaynak Azure İletişim Hizmetleri Kullanıcı Arabirimi Kitaplığı'nda bu hızlı başlangıç için örnek Android uygulamasını edinin.
Ön koşullar
- Bir Azure hesabı ve etkin bir Azure aboneliği. Ücretsiz hesap oluşturun.
- Android Studio çalıştıran bir işletim sistemi.
- Dağıtılan Azure İletişim Hizmetleri kaynağı.
- Azure İletişim Hizmetleri erişim belirteci.
Projeyi ayarlama
Hızlı başlangıç projesini ayarlamak için aşağıdaki bölümleri tamamlayın.
Yeni bir Android projesi oluşturma
Android Studio'da yeni bir proje oluşturun:
Dosya menüsünde Yeni Yeni Proje'yi> seçin.
Yeni Proje'de Boş Etkinlik proje şablonunu seçin.
İleri’yi seçin.
Boş Etkinlik bölümünde projeyi UILibraryQuickStart olarak adlandırın. Dil için Java/Kotlin'i seçin. En düşük SDK için API 21: Android 5.0 (Lollipop) veya üzerini seçin.
Son'u seçin.
Paketleri yükleme
Gerekli uygulama paketlerini yüklemek için aşağıdaki bölümleri tamamlayın.
Bağımlılık ekleme
Uygulama düzeyi UILibraryQuickStart/app/build.gradle dosyanıza (uygulama klasöründe) aşağıdaki bağımlılığı ekleyin:
dependencies {
...
implementation 'com.azure.android:azure-communication-ui-calling:+'
...
}
Maven depoları ekleme
Kitaplığı tümleştirmek için iki Maven deposu gerekir:
- MavenCentral
- Azure paket deposu
Depoları eklemek için:
Proje Gradle betiklerinize aşağıdaki depoların eklendiğinden emin olun. Android Studio için (2020.*),
repositories
altındadependencyResolutionManagement(Gradle version 6.8 or greater)
içindedirsettings.gradle
. Android Studio'nun önceki sürümleri için (4.*),repositories
altındaallprojects{}
proje düzeyindedirbuild.gradle
.// dependencyResolutionManagement repositories { ... mavenCentral() maven { url "https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1" } ... }
Projenizi Gradle dosyalarıyla eşitleyin. Projeyi eşitlemek için Dosya menüsünde Projeyi Gradle Dosyalarıyla Eşitle'yi seçin.
Activity_main.xml dosyasına düğme ekleme
app/src/main/res/layout/activity_main.xml düzen dosyasına aşağıdaki kodu ekleyerek bileşik uygulamayı başlatacak bir düğme oluşturun:
<?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>
Bileşik başlatma
Bileşikleri başlatmak için:
Şuraya git:
MainActivity
.Bileşik bileşenlerinizi çağırmak üzere başlatmak için aşağıdaki kodu ekleyin. öğesini aramanızın grup kimliğiyle değiştirin
"GROUP_CALL_ID"
. değerini adınız ile değiştirin"DISPLAY_NAME"
. değerini belirtecinizle değiştirin"USER_ACCESS_TOKEN"
.
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 com.azure.android.communication.ui.calling.models.CallCompositeRemoteOptions
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 remoteOptions = CallCompositeRemoteOptions(locator, communicationTokenCredential, "DISPLAY_NAME")
val callComposite: CallComposite = CallCompositeBuilder().build()
callComposite.launch(this, remoteOptions)
}
private fun fetchToken(): String? {
return "USER_ACCESS_TOKEN"
}
}
Kodu çalıştırma
Android Studio'da uygulamayı derleyin ve başlatın:
- Başlat'ı seçin.
- İzinleri kabul edin ve ardından cihaz, mikrofon ve video ayarlarını seçin.
- Aramaya katıl'ı seçin.
Nesne modeli
Aşağıdaki sınıflar ve arabirimler, Azure İletişim Hizmetleri Android kullanıcı arabiriminin bazı önemli özelliklerini işler:
Ad | Tanım |
---|---|
CallComposite | Katılımcı galerisi ve denetimleriyle çağrı deneyimini işleyen bileşik bileşen |
CallCompositeBuilder | Seçeneklerle derleyen CallComposite oluşturucu |
CallCompositeJoinMeetingLocator | Grup araması başlatmak için geçişli CallComposite başlatma |
CallCompositeTeamsMeetingLinkLocator | Microsoft Teams toplantısına CallComposite katılmak için başlatmaya geçirildi |
CallCompositeLocalizationOptions | Bileşik dili ayarlamak için isteğe CallCompositeBuilder bağlı olarak eklendi |
UI Kitaplığı işlevselliği
Android uygulamanız için temel iletişim özellikleri oluşturmak için kodu alın.
CallComposite Oluşturma
oluşturmak CallComposite
için işlevinin startCallComposite
içinde bir CallCompositeBuilder
örneği ve örneği CallComposite
başlatın.
Kimlik doğrulaması kurulumu
Kimlik doğrulamasını ayarlamak için işlevinin startCallComposite
içinde bir CommunicationTokenCredential
örnek başlatın. değerini erişim belirtecinizle değiştirin "USER_ACCESS_TOKEN"
.
val callComposite: CallComposite = CallCompositeBuilder().build()
val communicationTokenRefreshOptions = CommunicationTokenRefreshOptions(this::fetchToken, true)
val communicationTokenCredential = CommunicationTokenCredential(communicationTokenRefreshOptions)
Grup araması ayarlama
Grup çağrısı ayarlamak için bir CallCompositeGroupCallLocator
başlatın ve bunu nesnesine CallCompositeRemoteOptions
sağlayın.
val locator = CallCompositeGroupCallLocator(UUID.fromString("GROUP_CALL_ID"))
val remoteOptions = CallCompositeRemoteOptions(
locator,
communicationTokenCredential,
"DISPLAY_NAME",
)
Teams toplantısı ayarlama
Microsoft Teams toplantısı ayarlamak için bir CallCompositeTeamsMeetingLinkLocator
başlatın ve bunu nesnesine CallCompositeRemoteOptions
sağlayın.
val locator = CallCompositeTeamsMeetingLinkLocator("TEAMS_MEETING_LINK")
val remoteOptions = CallCompositeRemoteOptions(
locator,
communicationTokenCredential,
"DISPLAY_NAME",
)
Rooms araması ayarlama
Önemli
Azure İletişim Hizmetleri'nin bu özelliği şu anda önizleme aşamasındadır.
Önizleme API'leri ve SDK'ları hizmet düzeyi sözleşmesi olmadan sağlanır. Bunları üretim iş yükleri için kullanmamanızı öneririz. Bazı özellikler desteklenmeyebilir veya kısıtlı özelliklere sahip olabilir.
Daha fazla bilgi için Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları'nı gözden geçirin.
Azure İletişim Hizmetleri Rooms çağrısı ayarlamak için bir CallCompositeRoomLocator
başlatın, bunu nesnesine CallCompositeRemoteOptions
sağlayın ve değerine setRoleHint()
ayarlayın CallCompositeParticipantRole
CallCompositeLocalOptions
.
CallComposite
çağrısına bağlanmadan önce rol ipucunu kullanır. Çağrı bağlandıktan sonra, gerçek güncel katılımcı rolü Azure İletişim Hizmetleri alınır.
Odalar hakkında daha fazla bilgi için bkz. Odalar Hızlı Başlangıcı
val locator = CallCompositeRoomLocator("<ROOM_ID>")
val remoteOptions = CallCompositeRemoteOptions(
locator,
communicationTokenCredential,
"DISPLAY_NAME",
)
val localOptions = CallCompositeLocalOptions().setRoleHint(participantRole)
val callComposite = CallCompositeBuilder().build()
callComposite.launch(context, remoteOptions, localOptions)
Bileşik başlatma
Çağrı kullanıcı arabirimini başlatmak için işlevinin startCallComposite
içinde örnekte çağrısı launch
oluşturun CallComposite
.
CallComposite hata olaylarına abone olma
Hata olaylarını almak için ile CallComposite
çağrısında bulunursetOnErrorHandler
.
Hata işleyicisine aşağıdaki errorCode
değerler gönderilebilir:
CallCompositeErrorCode.CALL_JOIN_FAILED
CallCompositeErrorCode.CALL_END_FAILED
CallCompositeErrorCode.TOKEN_EXPIRED
CallCompositeErrorCode.CAMERA_FAILURE
CallCompositeErrorCode.MICROPHONE_PERMISSION_NOT_GRANTED
CallCompositeErrorCode.NETWORK_CONNECTION_NOT_AVAILABLE
Aşağıdaki örnekte, başarısız bileşik olay için bir hata olayı gösterilmektedir.
callComposite.addOnErrorEventHandler { callCompositeErrorEvent ->
println(callCompositeErrorEvent.errorCode)
}
Tema yapılandırması uygulama
Bileşik bileşenin birincil rengini değiştirmek için, üst tema olarak kullanarak AzureCommunicationUICalling.Theme
src/main/res/values/themes.xml ve src/main/res/values-night/themes.xml içinde yeni bir tema stili oluşturun. Temayı uygulamak için, içinde tema kimliğini CallCompositeBuilder
ekleyin:
<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()
Yerelleştirme yapılandırması uygulama
Bileşik dili değiştirmek için ile Locale
oluşturmak CallCompositeLocalizationOptions
için kullanınCallCompositeSupportedLocale
. Dil uygulamak için yerelleştirme yapılandırmasını 'ye CallCompositeBuilder
ekleme. Varsayılan olarak, tüm metin etiketleri İngilizce (en
) dizeleri kullanır. için farklı bir değer ayarlamak için language
kullanabilirsinizCallCompositeLocalizationOptions
. Varsayılan olarak, KULLANıCı Arabirimi Kitaplığı, kullanıcı arabirimi bileşenleriyle kullanabileceğiniz bir değer kümesi language
içerir. CallCompositeSupportedLocale
desteklenen yerel ayarları sağlar. Örneğin, İngilizce yerel ayarına erişmek için kullanabilirsiniz CallCompositeSupportedLocale.EN
. CallCompositeSupportedLocale.getSupportedLocales()
desteklenen diller için yerel ayar nesnelerinin listesini sağlar.
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()
CallComposite çağrı durumu değiştirildi olayına abone olma
Çağrı durumu değiştirilmiş olayları almak için ile CallComposite
çağrısında addOnCallStateChangedEventHandler
bulunur.
Aşağıdaki örnekte, çağrı durumunun değiştiği bir olay gösterilmektedir.
callComposite.addOnCallStateChangedEventHandler { callStateChangedEvent ->
println(callStateChangedEvent.code)
}
CallComposite'ı kapatma ve kapatılan olaya abone olma
Kapatmayı almak için ile CallComposite
çağrısında bulunuraddOnDismissedEventHandler
. CallComposite'ı kapatmak için öğesini arayın dismiss
.
Aşağıdaki örnekte, çağrı durumunun değiştiği bir olay gösterilmektedir.
callComposite.addOnDismissedEventHandler { callCompositeDismissedEvent ->
println(callCompositeDismissedEvent.errorCode)
}
callComposite.dismiss()
Diğer özellikler
Kullanım örnekleri listesinde daha fazla özellik hakkında ayrıntılı bilgiler bulunur.
Mobil uygulamanıza bildirim ekleme
Azure İletişim Hizmetleri ile tümleşirAzure Event Grid ve Azure Notification Hubs ile Azure uygulamalarınıza anında iletme bildirimleri ekleyebilirsiniz. Uygulamanızdaki bilgileri kullanıcıların mobil cihazlarına göndermek için anında iletme bildirimlerini kullanabilirsiniz. Anında iletme bildirimi bir iletişim kutusu gösterebilir, ses çalabilir veya gelen arama kullanıcı arabirimini görüntüleyebilir.
Bu hızlı başlangıç için iOS için açık kaynak Azure İletişim Hizmetleri Kullanıcı Arabirimi Kitaplığı'nda örnek iOS uygulamasını alın.
Ön koşullar
- Bir Azure hesabı ve etkin bir Azure aboneliği. Ücretsiz hesap oluşturun.
- Xcode 13 veya üzerini çalıştıran bir Mac ve anahtarlığınıza yüklenmiş geçerli bir geliştirici sertifikası. Bağımlılıkları getirmek için CocoaPods da yüklenmelidir.
- Dağıtılan Azure İletişim Hizmetleri kaynağı.
- Azure İletişim Hizmetleri erişim belirteci.
Projeyi ayarlama
Hızlı başlangıç projesini ayarlamak için aşağıdaki bölümleri tamamlayın.
Yeni bir Xcode projesi oluşturma
Xcode'da yeni bir proje oluşturun:
Dosya menüsünde Yeni Proje'yi> seçin.
Yeni projeniz için şablon seçin bölümünde iOS platformunu ve ardından Uygulama uygulaması şablonunu seçin. Hızlı başlangıçta UIKit görsel taslakları kullanılır. Hızlı başlangıçta testler oluşturulmaz, bu nedenle Testleri Dahil Et onay kutusunu temizleyebilirsiniz.
Yeni projeniz için seçenekleri seçin alanına ürün adı olarak UILibraryQuickStart girin. Arabirim için Görsel Taslak'ı seçin.
Paketi ve bağımlılıkları yükleme
(İsteğe bağlı) M1 yüklü MacBook için, Xcode'da Rosetta'yı yükleyin ve etkinleştirin.
Proje kök dizininizde bir Podfile oluşturmak için komutunu çalıştırın
pod init
. Hatayla karşılaşırsanız CocoaPods'ı geçerli sürüme güncelleştirin.Podfile'ınıza aşağıdaki kodu ekleyin. değerini proje adınız ile değiştirin
UILibraryQuickStart
.platform :ios, '15.0' target 'UILibraryQuickStart' do use_frameworks! pod 'AzureCommunicationUICalling' end
pod install --repo-update
öğesini çalıştırın.Xcode'da, oluşturulan .xcworkspace dosyasını açın.
Cihaz donanımına erişim isteme
Mikrofon ve kamera dahil olmak üzere cihazın donanımına erişmek için uygulamanızın bilgi özellik listesini güncelleştirin. İlişkili değeri, sistemin kullanıcıdan erişim istemek için kullandığı iletişim kutusuna eklenmiş bir dize olarak ayarlayın.
Proje ağacının girdisine
Info.plist
sağ tıklayın ve Kaynak Kodu Olarak>Aç'ı seçin. Aşağıdaki satırları en üst düzey<dict>
bölüme ekleyin ve dosyayı kaydedin.<key>NSCameraUsageDescription</key> <string></string> <key>NSMicrophoneUsageDescription</key> <string></string>
Xcode dosyasındaki kaynak kodun
Info.plist
bir örneği aşağıda verilmiştir:Cihaz izin isteklerinin doğru eklendiğini doğrulamak için Özellik Listesi Olarak>Aç'ı seçin. Bilgi özellik listesinin aşağıdaki örneğe benzer olup olmadığını denetleyin:
Bitcode'u kapatma
Xcode projesinde, Derleme Ayarlar altında Bit Kodunu Etkinleştir seçeneğini Hayır olarak ayarlayın. Ayarı bulmak için Temel olan filtreyi Tümü olarak değiştirin veya arama çubuğunu kullanın.
Bileşik başlatma
Bileşikleri başlatmak için:
Şuraya git:
ViewController
.Bir çağrı için bileşik bileşenlerinizi başlatmak için aşağıdaki kodu ekleyin. öğesini, aramanızın grup kimliğiyle veya çağrısı için bir grup kimliği oluşturmak için ile
UUID()
değiştirin<GROUP_CALL_ID>
. değerini adınız ile değiştirin<DISPLAY_NAME>
. (için<DISPLAY_NAME>
dize uzunluğu sınırı 256 karakterdir.) değerini erişim belirtecinizle değiştirin<USER_ACCESS_TOKEN>
.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() callComposite = CallComposite(withOptions: callCompositeOptions) let communicationTokenCredential = try! CommunicationTokenCredential(token: "<USER_ACCESS_TOKEN>") let remoteOptions = RemoteOptions(for: .groupCall(groupId: UUID(uuidString: "<GROUP_CALL_ID>")!), credential: communicationTokenCredential, displayName: "<DISPLAY_NAME>") callComposite?.launch(remoteOptions: remoteOptions) } }
Kodu çalıştırma
Uygulamanızı iOS simülatöründe derlemek ve çalıştırmak için Ürün>Çalıştırma'yı seçin veya (⌘-R) klavye kısayolunu kullanın. Ardından simülatördeki arama deneyimini deneyin:
Deneyimi Başlat'ı seçin.
Ses izinlerini kabul edin ve ardından cihaz, mikrofon ve video ayarlarını seçin.
Aramayı başlat'ı seçin.
Nesne modeli
Aşağıdaki sınıflar ve arabirimler, Azure İletişim Hizmetleri UI istemci kitaplığının bazı temel özelliklerini işler:
Ad | Tanım |
---|---|
CallComposite | Katılımcı galerisi ve denetimleri olan bir arama deneyimini işleyen bileşen |
CallCompositeOptions | Temalar ve olay işleme gibi seçenekler için Ayarlar |
RemoteOptions | Grup aramasına veya Teams toplantısına katılmak için Azure İletişim Hizmetleri göndermek için uzak seçenekler. |
ThemeOptions | Bileşik tema için özelleştirme seçenekleri |
LocalizationOptions | Bileşik için dil seçenekleri |
UI Kitaplığı işlevselliği
iOS uygulamanız için temel iletişim özellikleri oluşturmaya yönelik kodu alın.
CallComposite Oluşturma
CallComposite
oluşturmak için işlevinin startCallComposite
içinde bir CallCompositeOptions
örneği ve örneği CallComposite
başlatın:
@objc private func startCallComposite() {
let callCompositeOptions = CallCompositeOptions()
callComposite = CallComposite(withOptions: callCompositeOptions)
}
Kimlik doğrulaması kurulumu
Kimlik doğrulamasını ayarlamak için işlevinin startCallComposite
içinde bir CommunicationTokenCredential
örnek başlatın. değerini erişim belirtecinizle değiştirin <USER_ACCESS_TOKEN>
.
let communicationTokenCredential = try! CommunicationTokenCredential(token: "<USER_ACCESS_TOKEN>")
Henüz erişim belirteciniz yoksa bir Azure İletişim Hizmetleri erişim belirteci oluşturun.
Grup araması ayarlama
Grup çağrısı ayarlamak için işlevinin startCallComposite
içinde bulucu için .groupCall
bir RemoteOptions
örnek başlatın. öğesini aramanızın grup kimliğiyle değiştirin <GROUP_CALL_ID>
. değerini adınız ile değiştirin <DISPLAY_NAME>
.
// let uuid = UUID() to create a new call
let uuid = UUID(uuidString: "<GROUP_CALL_ID>")!
let remoteOptions = RemoteOptions(for: .groupCall(groupId: uuid),
credential: communicationTokenCredential,
displayName: "<DISPLAY_NAME>")
Aramalar için grup kimliği kullanma hakkında daha fazla bilgi için bkz . Aramaları yönetme.
Teams toplantısı ayarlama
Microsoft Teams toplantısı ayarlamak için işlevinin startCallComposite
içinde bulucu için .teamsMeeting
bir RemoteOptions
örnek başlatın. öğesini aramanızın Teams toplantı bağlantısıyla değiştirin <TEAMS_MEETING_LINK>
. değerini adınız ile değiştirin <DISPLAY_NAME>
.
let remoteOptions = RemoteOptions(for: .teamsMeeting(teamsLink: "<TEAMS_MEETING_LINK>"),
credential: communicationTokenCredential,
displayName: "<DISPLAY_NAME>")
Teams toplantı bağlantısı alma
Graph API'lerini kullanarak Microsoft Teams toplantı bağlantısı alabilirsiniz. Bu işlem Graph belgelerinde ayrıntılı olarak anlatılmıştır.
İletişim Hizmetleri Arama SDK'sı tam bir Microsoft Teams toplantı bağlantısını kabul eder. Bu bağlantı, joinWebUrl özelliği altında kaynağın bir parçası onlineMeeting
olarak döndürülür. Ayrıca, Teams toplantı davetinin kendisindeki Toplantıya Katıl URL'sinden de gerekli toplantı bilgilerini alabilirsiniz.
Rooms araması ayarlama
Önemli
Azure İletişim Hizmetleri'nin bu özelliği şu anda önizleme aşamasındadır.
Önizleme API'leri ve SDK'ları hizmet düzeyi sözleşmesi olmadan sağlanır. Bunları üretim iş yükleri için kullanmamanızı öneririz. Bazı özellikler desteklenmeyebilir veya kısıtlı özelliklere sahip olabilir.
Daha fazla bilgi için Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları'nı gözden geçirin.
Azure İletişim Hizmetleri Rooms çağrısı ayarlamak için işlevinin startCallComposite
içinde bulucu için .roomCall
bir RemoteOptions
örnek başlatın. öğesini aramanızın Oda Kimliği ile değiştirin <ROOM_ID>
. ile roleHint
bir LocalOptions
örneği başlatın.
değerini adınız ile değiştirin <DISPLAY_NAME>
.
CallComposite
çağrısına bağlanmadan önce rol ipucunu kullanır. Çağrı bağlandıktan sonra, gerçek güncel katılımcı rolü Azure İletişim Hizmetleri alınır.
Odalar hakkında daha fazla bilgi için bkz. Odalar Hızlı Başlangıcı
let remoteOptions = RemoteOptions(for: .roomCall(roomId: "<ROOM_ID>"),
credential: communicationTokenCredential,
displayName: "<DISPLAY_NAME>")
let localOptions = LocalOptions(roleHint: participantRole)
let callComposite = CallComposite()
callComposite.launch(remoteOptions: remoteOptions, localOptions: localOptions)
Bileşik başlatma
işlevinin startCallComposite
içinde örneği çağırın launch
CallComposite
:
callComposite?.launch(remoteOptions: remoteOptions)
Olaylara abone olma
Bileşik olaylar üzerinde işlem yapmak için kapanışları uygulayabilirsiniz. Hata işleyicisine aşağıdaki errorCodes gönderilebilir:
callJoin
callEnd
cameraFailure
tokenExpired
microphonePermissionNotGranted
networkConnectionNotAvailable
Aşağıdaki örnekte, başarısız bileşik olay için bir hata olayı gösterilmektedir:
callComposite?.events.onError = { error in
print("CallComposite failed with error:\(error)")
}
Tema seçeneklerini uygulama
Uygulamanızdaki iletişim deneyimini özelleştirmek için protokolü uygulayan ThemeOptions
özel tema seçenekleri oluşturun. içinde yeni sınıfın CallCompositeOptions
bir örneğini ekleyin:
class CustomThemeOptions: ThemeOptions {
var primaryColor: UIColor {
return UIColor.red
}
}
let callCompositeOptions = CallCompositeOptions(theme: CustomThemeOptions())
Temalı oluşturmanın nasıl çalıştığı hakkında daha fazla bilgi için, bkz . temalı kılavuz.
Yerelleştirme seçeneklerini uygulama
Bileşikteki dili değiştirmek için özel yerelleştirme seçenekleri oluşturun ve bunları öğesine CallCompositeOptions
ekleyin. Varsayılan olarak, tüm metin etiketleri İngilizce (SupportedLocale.en
) dizeleri kullanır. için farklı bir değer ayarlamak için locale
kullanabilirsinizLocalizationOptions
. Varsayılan olarak, KULLANıCı Arabirimi Kitaplığı, kullanıcı arabirimi bileşenleriyle kullanabileceğiniz bir değer kümesi locale
içerir. SupportedLocale.values
desteklenen tüm dillerin listesini sağlar.
Aşağıdaki örnekte bileşik Fransızca (fr
) olarak yerelleştirilmiştir:
// 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)
Yerelleştirme hakkında daha fazla bilgi edinmek ve desteklenen dillerin listesi için yerelleştirme kılavuzuna bakın.
CallComposite çağrı durumu değiştirildi olayına abone olma
Bileşik olaylar üzerinde işlem yapmak için kapanışları uygulayabilirsiniz. Çağrı durumları, çağrı durumu değiştirilen işleyiciye gönderilir.
Aşağıdaki örnekte, çağrı durumunun değiştiği bir olay gösterilmektedir.
callComposite?.events.onCallStateChanged = { callStateEvent in
print("CallComposite call state changed:\(callStateEvent.requestString)")
}
CallComposite'ı kapatma ve kapatılan olaya abone olma
CallComposite'ı kapatmak için öğesini arayın dismiss
. Çağrı bileşik kapatıldığında aşağıdaki kapatma olayı gönderilir:
callComposite?.events.onDismissed = { dismissed in
print("CallComposite dismissed:\(dismissed.errorCode)")
}
callComposite.dismiss()
Mobil uygulamanıza bildirim ekleme
Azure İletişim Hizmetleri ile tümleşirAzure Event Grid ve Azure Notification Hubs ile Azure uygulamalarınıza anında iletme bildirimleri ekleyebilirsiniz. Uygulamanızdaki bilgileri kullanıcıların mobil cihazlarına göndermek için anında iletme bildirimlerini kullanabilirsiniz. Anında iletme bildirimi bir iletişim kutusu gösterebilir, ses çalabilir veya gelen arama kullanıcı arabirimini görüntüleyebilir.
Kaynakları temizleme
İletişim Hizmetleri aboneliğini temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz.
Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.
Kaynakları temizleme hakkında daha fazla bilgi edinin.