Swift

メッセージの送信

前のステップでは会話とイベントについて学びましたが、メッセージを送信すると新しいイベントが作成され、クライアント経由で送信されます。

メッセージを送信するには Task での Button が見える:

struct ChatView: View {
    ...
    HStack {
        TextField("Message", text: $message)
        Button("Send") {
            Task {
                await chatViewModel.sendMessage(message)
                self.message = ""
            }
        }.buttonStyle(.bordered)
    }.padding(8)
}

これは sendMessage 関数を使用する。 ChatViewModel 次に作成する message を空文字列に変換すると、入力されたテキストが消去される。次の追加 sendMessage に対する ChatViewModel クラスである:

@MainActor
final class ChatViewModel: NSObject, ObservableObject {
    ...
    func sendMessage(_ message: String) async {
        _ = try? await client.sendMessageTextEvent(conversationID, text: message)
    }
}

テキストメッセージを送信するには、次のように電話する。 sendMessageTextEvent の会話IDとメッセージをクライアントに送る。成功した場合 didReceiveConversationEvent にある。 VGChatClientDelegate が呼び出される。これは、イベントを events 配列が自動的にUIを更新する。

ビルド&ラン

Cmd + R をビルドして再度実行してください。これでチャットアプリが機能するようになりました!同時にチャットするには、2つの異なるシミュレータ/デバイスでアプリを実行できます:

Sent messages