Swift

VGVoiceClient

チャットを開始する前に、Client SDKはVonageサーバーに認証する必要があります。以下の追加が必要です。 ViewController.swift.

注: をすでにインポートしていることに注意してください。 VGVoiceClient をファイルの先頭に置く。

追加 VGVoiceClient インスタンスと User プロパティの下にある connectionStatusLabel.

class ViewController: UIViewController {
    ...
    let connectionStatusLabel = UILabel()
    
    var client = VGVoiceClient()
    
    var user: User? {
        didSet {
            login()
        }
    }
}

ボタンターゲット

ログイン・ボタンを機能させるには、タップされたときに機能を実行するターゲットを追加する必要があります。そのためには ViewController.swift ファイルにこの2つの関数を追加する。

class ViewController: UIViewController {
    ...

    override func viewDidLoad() {
        ...
    }

    ...

    @objc func setUserAsAlice() {
        self.user = User.Alice
    }

    @objc func setUserAsBob() {
        self.user = User.Bob
    }
}

次に、2つの関数をそれぞれのボタンにリンクさせる。 viewDidLoad 関数である。

override func viewDidLoad() {
    ...

    loginAliceButton.addTarget(self, action: #selector(setUserAsAlice), for: .touchUpInside)
    loginBobButton.addTarget(self, action: #selector(setUserAsBob), for: .touchUpInside)
}

ログイン機能の追加

最後に ViewController.swiftを追加する。 login 関数が必要です。この関数は、ユーザ・プロパティが新しい値に設定されたときにセッションを作成します。

class ViewController: UIViewController {
    ...

    override func viewDidLoad() {
        ...
    }

    func login() {
        guard let user = self.user else { return }

        VGVoiceClient.isUsingCallKit = false
        let config = VGClientConfig(region: .US)
        config.enableWebsocketInvites = true
        client.setConfig(config)
        client.createSession(user.jwt) { error, sessionId in
            DispatchQueue.main.async { [weak self] in
                guard let self else { return }
                if error == nil {
                    self.connectionStatusLabel.text = "Connected"
                } else {
                    self.connectionStatusLabel.text = error?.localizedDescription
                }
            }
        }
    }
    
}

エラーが発生した場合は connectionStatusLabel は関連する接続ステータスで更新される。

注: について enableWebsocketInvites フラグと isUsingCallKit 設定は本番環境では使用しないでください。プッシュ通知を有効にすると、アプリケーションがバックグラウンドでも着信があることを確認できます。 CallKit.を参照のこと。 プッシュ通知 のガイドを参照されたい。

ビルド&ラン

プレス Cmd + R をビルドして再度実行してください。ログインボタンのいずれかをタップすると、それぞれのユーザーでクライアントにログインします:

Interface connected