Swift

Enviar un mensaje

En el paso anterior aprendiste sobre conversaciones y eventos, enviar un mensaje crea un nuevo evento y lo envía a través del cliente.

Para enviar un mensaje, actualice el Task en el Button en la vista:

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

Esto llamará a sendMessage en el ChatViewModel que creará a continuación, luego establece message a una cadena vacía que borrará el texto introducido. Siguiente añadir sendMessage a la ChatViewModel clase:

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

Para enviar un SMS se llama sendMessageTextEvent en el cliente con el ID de la conversación y el mensaje. Si tiene éxito, didReceiveConversationEvent en el VGChatClientDelegate será llamado. Esto añadirá el evento al archivo events que actualizará automáticamente la interfaz de usuario.

Construir y ejecutar

Cmd + R para construir y ejecutar de nuevo. Ya tienes una aplicación de chat en funcionamiento. Para chatear simultáneamente puedes ejecutar la aplicación en dos simuladores/dispositivos diferentes:

Sent messages