示例:
// EventStream handlers:
void OnStreamListen(std::unique_ptr<flutter::EventSink<>>&& events);
void OnStreamCancel();
// Sends a state event to |event_sink_| with the current charging status.
void SendNotifyEvent(const char* event);
std::unique_ptr<flutter::EventSink<>> event_sink_;
cPP:
flutter::EventChannel<> charging_channel(
flutter_controller_->engine()->messenger(), "samples.flutter.io/charging",
&flutter::StandardMethodCodec::GetInstance());
charging_channel.SetStreamHandler(
std::make_unique<flutter::StreamHandlerFunctions<>>(
[this](auto arguments, auto events) {
this->OnStreamListen(std::move(events));
return nullptr;
},
[this](auto arguments) {
this->OnStreamCancel();
return nullptr;
}));
void FlutterWindow::OnStreamListen(
std::unique_ptr<flutter::EventSink<>>&& events) {
event_sink_ = std::move(events);
}
void FlutterWindow::OnStreamCancel() { event_sink_ = nullptr; }
void FlutterWindow::SendNotifyEvent(const char* event) {
event_sink_->Success(flutter::EncodableValue(event));
}