registerValueQueryHandler method

  1. @override
void registerValueQueryHandler(
  1. String entityIdentifier,
  2. ValueQueryHandler handler
)
override

Registers a handler for an IntentValueQuery (#51).

An IntentValueQuery receives a serializable search input from the system (for content that is hard to index ahead of time) and returns matching entities. The handler receives the input map (e.g. {'query': 'text'}) and returns a list of entity maps.

Example:

AppIntentsPlatform.instance.registerValueQueryHandler(
  'com.example.app.ProductEntity',
  (input) async {
    final products = await catalog.search(input['query'] as String? ?? '');
    return products.map((p) => p.toJson()).toList();
  },
);

See docs/adr/0001-intent-value-query-bridge.md.

Implementation

@override
void registerValueQueryHandler(
  String entityIdentifier,
  ValueQueryHandler handler,
) {
  _valueQueryHandlers[entityIdentifier] = handler;
}