registerExtensions method
void
registerExtensions()
Registers the extension. Call once, before runApp.
Implementation
void registerExtensions() {
GuestExtensions.register('ext.flutterware.showEntry', (_, args) async {
var before = _state?.entryId;
var showing = show(args['id'] ?? '');
if (showing != before) {
// Both halves, for the reason `imagesSettled` gives: this guest is
// headless and draws when something asks, so marking the tree dirty is
// not by itself a frame. Answered only once that frame is on screen —
// a reply that came back first would have the host reading the
// previous entry's errors under this entry's name.
SchedulerBinding.instance.scheduleFrame();
await SchedulerBinding.instance.endOfFrame.timeout(
const Duration(seconds: 2),
onTimeout: () {},
);
}
return developer.ServiceExtensionResponse.result(
jsonEncode({'entry': showing}),
);
});
}