Explorando o EventChannel no Flutter
No último artigo, discutimos sobre o MethodChannel, que permite que o aplicativo Flutter chame código nativo e aguarde uma resposta. Por outro lado, o EventChannel, como o próprio nome sugere, é utilizado para enviar eventos do código nativo para o código Dart através de uma stream, permitindo que o aplicativo escute esses eventos.
Aqui está um pequeno exemplo de como usar o EventChannel. O valor deste CircularProgress é obtido do código nativo Kotlin, que me notifica a cada segundo com o valor atualizado.
Para configurar o Event Channel, precisamos criar o nosso event channel utilizando a classe EventChannel, passando flutterEngine.dartExecutor.binaryMessenger e o name, que é o nome de referência utilizado para estabelecer a conexão entre o código nativo e o Flutter. Após criar o objeto EventChannel, chamamos o método setStreamHandler, passando como argumento o objeto do tipo StreamHandler. Logo abaixo, temos a classe CounterPercent, que a implementa, sendo necessário subscrever os dois métodos.
- onListen
- onCancel
O método onListen é onde enviamos os eventos para o outro lado, que neste caso é o nosso aplicativo Flutter.
O método onCancel é utilizado quando a stream é cancelada pelo cliente.
Segue abaixo um exemplo do código do lado do Flutter:
Espero que tenha gostado do artigo! Nos vemos no próximo!