開始使用 Azure 通訊服務 UI 程式庫,將通訊體驗快速整合至您的應用程式中。 本文說明如何將 UI 連結庫聊天複合整合到應用程式中,併為您的應用程式使用者設定體驗。
Azure 通訊服務 UI 連結庫會在您的應用程式中轉譯完整的聊天體驗。 它會負責連線到 Azure 通訊服務 聊天服務,並自動更新參與者的存在。 身為開發人員,您必須決定在應用程式的使用者體驗中要從哪裡開始聊天體驗,並僅建立所需的 Azure 通訊服務資源。
註解
如需 Web UI 連結庫的詳細資訊,請參閱 Web UI 連結庫劇本。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 已部署的 Azure 通訊服務資源。 建立 Azure 通訊服務資源。
- Azure 通訊服務的令牌。 請參閱此範例。
存取這些快速入門
存取這些劇本
重要
此 Azure 通訊服務功能目前處於預覽狀態。 預覽中的功能可供公開使用,而且可供所有新的和現有的Microsoft客戶使用。
提供的預覽 API 和 SDK 並無服務等級協定。 建議您不要將其用於生產工作負載。 某些功能可能不受支援,或功能可能會受到限制。
如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
在開放原始碼 Azure 通訊服務適用於 Android 的 UI 程式庫中取得適用於聊天的 Azure 範例 Android SDK 的範例 Android 應用程式。
必要條件
- Azure 帳戶和作用中的 Azure 訂用帳戶。 免費建立帳戶。
- 執行 Android Studio 的 OS。
- 已部署的 Azure 通訊服務資源。 請注意端點 URL。
- Azure 通訊服務存取權杖和使用者識別碼。
- Azure 通訊服務聊天對話與上一個步驟中新增至該對話的使用者。
設定專案
完成下列各節以設定專案。
建立新的 Android 專案
在 Android Studio 中,建立新的專案。
在 [檔案] 功能表上,選取 [新增>專案]。
在 新增專案 上,選取 空白檢視活動 專案範本。
選取 [下一步]。
將專案命名為 UILibraryQuickStart。 針對語言,選取 [Java/Kotlin]。 對於最低 SDK,選擇 API 23:Android 6.0(Marshmallow) 或更新版本。
選取 [完成]。
安裝套件
完成下列各節以安裝必要的應用程式套件。
新增相依項目
在您的應用程式層級 UILibraryQuickStart/app/build.gradle 檔案中 (在應用程式資料夾中),新增下列相依性:
dependencies {
...
implementation 'com.azure.android:azure-communication-ui-chat:+'
...
}
新增 Maven 存放庫
將資料庫進行整合需要 Azure 套件儲存庫。
若要新增存放庫:
- 在您的專案 Gradle 指令碼中,確保已新增下列存放庫。 針對 Android Studio (2020.*),
repositories位於settings.gradle的dependencyResolutionManagement(Gradle version 6.8 or greater)下。 針對舊版 Android Studio (4.*),repositories位於專案層級build.gradle的allprojects{}下。
// dependencyResolutionManagement
repositories {
...
maven {
url "https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1"
}
...
}
執行程式碼
在 Android Studio 中,建置並啟動應用程式。
- 選取 [啟動]。
- 聊天用戶端會加入聊天對話,您可以開始輸入和傳送訊息。
- 如果客戶端無法加入線程,而且您看到
chatJoin失敗的錯誤,請確認使用者的存取令牌有效,且使用者已透過 REST API 呼叫或使用az命令行介面新增至聊天對話。
重要
此 Azure 通訊服務功能目前處於預覽狀態。 預覽中的功能可供公開使用,而且可供所有新的和現有的Microsoft客戶使用。
提供的預覽 API 和 SDK 並無服務等級協定。 建議您不要將其用於生產工作負載。 某些功能可能不受支援,或功能可能會受到限制。
如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
在開放原始碼的 Azure 通訊服務 iOS UI Library 中獲取 Azure 样本 iOS SDK 聊天應用程式。
必要條件
- Azure 帳戶和作用中的 Azure 訂用帳戶。 免費建立帳戶。
- 執行 Xcode 13 或更新版本的 Mac,以及安裝在金鑰鏈中的有效開發人員憑證。 也必須安裝 CocoaPods 以擷取相依性。
- 已部署的 Azure 通訊服務資源。 請注意端點 URL。
- Azure 通訊服務存取權杖和使用者識別碼。
- Azure 通訊服務 聊天對話。 將您在上一個步驟中建立的使用者新增至此聊天對話。
設定專案
完成下列各節以設定快速入門專案。
建立新的 Xcode 專案
在 Xcode 中,建立新的專案。
在 [檔案] 功能表上選取 [新增]>[專案]。
在 [選擇新專案的範本] 上 ,選取 iOS 平臺,然後選取 應用程式 應用程式範本。 快速入門會使用 UIKit 分鏡腳本。
在 [選擇新項目的選項] 上,針對產品名稱輸入 UILibraryQuickStart。 針對介面,選取 [分鏡腳本]。 快速入門不會建立測試,因此您可以清除 [包含測試] 核取方塊。
安裝套件及其相依性
(選擇性) 針對使用 M1 的 MacBook,請在 Xcode 中安裝和啟用 Rosetta。
在您的專案根目錄中,執行
pod init以建立 Podfile。 如果您遇到錯誤,請將 CocoaPods 更新為目前的版本。將下列程式碼新增至您的 Podfile 中。 將
UILibraryQuickStart取代為您的專案名稱。platform :ios, '14.0' target 'UILibraryQuickStart' do use_frameworks! pod 'AzureCommunicationUIChat', '1.0.0-beta.5' end執行
pod install --repo-update。在 Xcode 中,開啟產生的 xcworkspace 檔案。
關閉使用者指令碼沙箱功能
連結的程式庫中的某些指令碼會在建置過程中進行檔案寫入。 若要啟用檔案寫入,請在 Xcode 中停用使用者指令碼沙箱功能。
在 Xcode 專案的 [建置設定] 底下,將 [使用者指令碼沙箱] 選項設定為 [否]。 若要尋找設定,請將篩選從 [基本] 變更為 [全部],或使用搜尋列。
初始化複合
若要初始化複合:
移至
ViewController。新增下列程式碼,以初始化聊天的複合元件。 將
<USER_ID>取代為使用者識別碼。 將<USER_ACCESS_TOKEN>替換為您的存取令牌。 使用您的端點 URL 取代<ENDPOINT_URL>。 將<THREAD_ID>替換為您的聊天對話識別碼。 以您的名稱取代<DISPLAY_NAME>。 (<DISPLAY_NAME>的字串長度限制為 256 個字元)。import UIKit import AzureCommunicationCommon import AzureCommunicationUIChat class ViewController: UIViewController { var chatAdapter: ChatAdapter? override func viewDidLoad() { super.viewDidLoad() let button = UIButton() var configuration = UIButton.Configuration.filled() configuration.contentInsets = NSDirectionalEdgeInsets(top: 10.0, leading: 20.0, bottom: 10.0, trailing: 20.0) configuration.baseBackgroundColor = .systemBlue button.configuration = configuration button.layer.cornerRadius = 10 button.setTitle("Start Experience", for: .normal) button.addTarget(self, action: #selector(startChatComposite), for: .touchUpInside) button.translatesAutoresizingMaskIntoConstraints = false self.view.addSubview(button) button.widthAnchor.constraint(equalToConstant: 200).isActive = true button.heightAnchor.constraint(equalToConstant: 50).isActive = true button.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true button.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true } @objc private func startChatComposite() { let communicationIdentifier = CommunicationUserIdentifier("<USER_ID>") guard let communicationTokenCredential = try? CommunicationTokenCredential( token: "<USER_ACCESS_TOKEN>") else { return } self.chatAdapter = ChatAdapter( endpoint: "<ENDPOINT_URL>", identifier: communicationIdentifier, credential: communicationTokenCredential, threadId: "<THREAD_ID>", displayName: "<DISPLAY_NAME>") Task { @MainActor in guard let chatAdapter = self.chatAdapter else { return } try await chatAdapter.connect() let chatCompositeViewController = ChatCompositeViewController( with: chatAdapter) let closeItem = UIBarButtonItem( barButtonSystemItem: .close, target: nil, action: #selector(self.onBackBtnPressed)) chatCompositeViewController.title = "Chat" chatCompositeViewController.navigationItem.leftBarButtonItem = closeItem let navController = UINavigationController(rootViewController: chatCompositeViewController) navController.modalPresentationStyle = .fullScreen self.present(navController, animated: true, completion: nil) } } @objc func onBackBtnPressed() { self.dismiss(animated: true, completion: nil) Task { @MainActor in self.chatAdapter?.disconnect(completionHandler: { [weak self] result in switch result { case .success: self?.chatAdapter = nil case .failure(let error): print("disconnect error \(error)") } }) } } }如果您選擇將聊天檢視放在小於螢幕大小的框架中,建議最小寬度為 250,且高度下限為 300。
執行程式碼
若要在 iOS 模擬器上建置並執行您的應用程式,請選取 [產品>執行]。 您也可以使用 (⌘-R) 鍵盤快捷方式。 然後,在模擬器上試用聊天體驗。
- 選取 [開始體驗]。
- 聊天用戶端會加入聊天對話,您可以開始輸入和傳送訊息。
- 如果客戶端無法加入線程,而且您看到
chatJoin失敗的錯誤,請確認使用者的存取令牌有效,且使用者已透過 REST API 呼叫或使用 az 命令行介面新增至聊天對話。
清除資源
如果您要清除和移除 Azure 通訊服務 訂用帳戶,您可以刪除資源或資源群組。
刪除資源群組也會刪除與其相關聯的任何其他資源。
深入了解如何清除資源。