Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Biblioteka interfejsu użytkownika usług Azure Communication Services zapewnia wbudowaną obsługę zestawu CallKit. Deweloperzy mogą udostępnić własną konfigurację zestawu CallKit do użycia w bibliotece interfejsu użytkownika.
Z tego artykułu dowiesz się, jak poprawnie skonfigurować zestaw CallKit przy użyciu biblioteki interfejsu użytkownika w aplikacji.
Wymagania wstępne
- Fizyczne urządzenie z systemem iOS. Symulator systemu iOS nie obsługuje funkcji CallKit.
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Wdrożony zasób usług komunikacyjnych. Utwórz zasób usług komunikacyjnych.
- Token dostępu użytkownika umożliwiający włączenie klienta wywołania. Uzyskiwanie tokenu dostępu użytkownika.
- Opcjonalnie: ukończenie przewodnika Szybki start dotyczącego rozpoczynania pracy z zestawami biblioteki interfejsu użytkownika.
Aby uzyskać więcej informacji, zobacz bibliotekę interfejsu użytkownika systemu iOS typu open source i przykładowy kod aplikacji.
Konfigurowanie integracji z zestawem CallKit
Usługa Azure Communication Services wywołująca zestaw SDK systemu iOS obsługuje integrację z zestawem CallKit. Tę integrację można włączyć w bibliotece interfejsu użytkownika, konfigurując wystąpienie programu CallCompositeCallKitOption. Aby uzyskać więcej informacji, zobacz Integracja z zestawem CallKit.
Określanie informacji adresata połączenia dla połączeń wychodzących
Aby określić informacje o połączeniach wychodzących, utwórz wystąpienie klasy CallKitRemoteInfo. Jeśli nie podasz wartości nieprzetworzonej CallKitRemoteInfoidentyfikatora uczestnika, będzie domyślnie wyświetlana.
Przypisz wartość parametru , displayName aby dostosować nazwę wyświetlaną elementu wywołującego. Wartość określona w pliku CallKitRemoteInfo jest dokładnie tak, jak jest wyświetlana w dzienniku połączeń z ostatnim numerem.
Przypisz cxHandle również wartość. Jest to to, co aplikacja otrzymuje, gdy użytkownik odwołuje się do tego kontaktu.
let cxHandle = CXHandle(type: .generic, value: "VALUE_TO_CXHANDLE")
let callKitRemoteInfo = CallKitRemoteInfo(displayName: "DISPLAY_NAME", handle: cxHandle)
callComposite.launch(..., // Locator for Azure Communication Service
callKitRemoteInfo: callKitRemoteInfo)
Określanie informacji adresata połączenia dla połączeń przychodzących
Aby określić informacje o wywołaniu przychodzącym, utwórz wystąpienie klasy CallKitOptions. Jeśli nie podasz wartości nieprzetworzonej CallKitOptionsidentyfikatora uczestnika, będzie domyślnie wyświetlana.
Przypisz wartość parametru , provideRemoteInfo aby dostosować nazwę wyświetlaną elementu wywołującego. Wartość określona w pliku CallKitRemoteInfo jest dokładnie tak, jak jest wyświetlana w dzienniku połączeń z ostatnim numerem.
Przypisz cxHandle również wartość. Jest to to, co aplikacja otrzymuje, gdy użytkownik odwołuje się do tego kontaktu.
public func incomingCallRemoteInfo(info: Caller) -> CallKitRemoteInfo {
let cxHandle = CXHandle(type: .generic, value: "VALUE_TO_CXHANDLE")
var remoteInfoDisplayName = "DISPLAY_NAME"
let callKitRemoteInfo = CallKitRemoteInfo(displayName: remoteInfoDisplayName,
handle: cxHandle)
return callKitRemoteInfo
}
Konfigurowanie dostawców
W razie potrzeby podaj CXProviderConfiguration wystąpienie na CallKitOptions. Aby uzyskać więcej informacji, zobacz dokumentację dla deweloperów firmy Apple dotyczącą CXProviderConfiguration.
let providerConfig = CXProviderConfiguration()
providerConfig.supportsVideo = true
providerConfig.maximumCallGroups = 1
providerConfig.maximumCallsPerCallGroup = 1
providerConfig.includesCallsInRecents = true
providerConfig.supportedHandleTypes = [.phoneNumber, .generic]
Konfigurowanie sesji audio
Skonfiguruj sesję audio, która ma być wywoływana przed umieszczeniem lub zaakceptowaniem połączenia przychodzącego i przed wznowieniem połączenia, które jest wstrzymane. Aby uzyskać więcej informacji, zobacz dokumentację dla deweloperów firmy Apple dotyczącą avAudioSession.
public func configureAudioSession() -> Error? {
let audioSession = AVAudioSession.sharedInstance()
let options: AVAudioSession.CategoryOptions = .allowBluetooth
var configError: Error?
do {
try audioSession.setCategory(.playAndRecord)
} catch {
configError = error
}
return configError
}
Włączanie zestawu CallKit
Aby włączyć zestaw CallKit, utwórz wystąpienie CallKitOptions elementu i podaj go w pliku callCompositeOptions.
let isCallHoldSupported = true // enable call hold (default is true)
let callKitOptions = CallKitOptions(
providerConfig: providerConfig,
isCallHoldSupported: isCallHoldSupported,
provideRemoteInfo: provideRemoteInfo,
configureAudioSession: configureAudioSession
)
let options = CallCompositeOptions(
..., // Other options for Azure Communication Service
callKitOptions: callKitOptions
)
Obsługa i wznawianie interfejsu API dla zestawu CallKit zintegrowanego w aplikacji
W przypadku zestawu CallKit zintegrowanego z aplikacją i holdresume zarządzania stanem wywołania.
callComposite.hold() { result in
switch result {
case .success:
// success
case .failure(let error):
// failure
}
}
callComposite.resume() { result in
switch result {
case .success:
// success
case .failure(let error):
// failure
}
}