Class: InteropClient

InteropClient

THE INTEROP API IS EXPERIMENTAL. IF YOU WOULD LIKE TO USE IT, PLEASE USE OUR DEFAULT IMPLEMENTATION IN BROWSER

The Interop Client API is broken up into two groups:

Content Facing APIs - For Application Developers putting Views into a Platform Window, who care about Context. These are APIs that send out and receive the Context data that flows between applications. Think of this as the Water in the Interop Pipes.

Context Grouping APIs - For Platform Developers, to add and remove Views to and from Context Groups. These APIs are utilized under-the-hood in Platforms, so they don't need to be used to participate in Interop. These are the APIs that decide which entities the context data flows between. Think of these as the valves or pipes that control the flow of Context Data for Interop.


All APIs are available at the fin.me.interop namespace.


You only need 2 things to participate in Interop Context Grouping:


Constructor

Returned by Interop.connectSync.


Interop methods intended for Views

Context Groups API

Intents API

Interop methods intended for Windows

Methods

(async) addContextHandler(handler, contextTypeopt) → {Promise.<Subscription>}

Add a context handler for incoming context. If an entity is part of a context group, and then sets its context handler, it will receive all of its declared contexts.

Parameters:
Name Type Attributes Description
handler ContextHandler

Handler for incoming context.

contextType string <optional>

The type of context you wish to handle.

Tutorials:
Returns:
Type
Promise.<Subscription>

(async) fireIntent(intent) → {Promise.<unknown>}

EXPERIMENTAL

Sends an intent to the Interop Broker to resolve.

Parameters:
Name Type Description
intent Intent

The combination of an action and a context that is passed to an application for resolution.

Tutorials:
Returns:
Type
Promise.<unknown>

(async) fireIntentForContext(context) → {Promise.<unknown>}

EXPERIMENTAL

Sends a Context that will be resolved to an Intent by the Interop Broker. This context accepts a metadata property.

Parameters:
Name Type Description
context ContextForIntent
Tutorials:
Returns:
Type
Promise.<unknown>

(async) getAllClientsInContextGroup(contextGroupId) → {Promise.<Array.<ClientIdentity>>}

Gets all clients for a context group. Used by Platform Windows.

Parameters:
Name Type Description
contextGroupId string

The id of context group you wish to get clients for.

Tutorials:
Returns:
Type
Promise.<Array.<ClientIdentity>>

(async) getContextGroups() → {Promise.<Array.<ContextGroupInfo>>}

Returns the Interop-Broker-defined context groups available for an entity to join. Used by Platform Windows.

Tutorials:
Returns:
Type
Promise.<Array.<ContextGroupInfo>>

(async) getCurrentContext(contextTypeopt) → {Promise.<Context>}

EXPERIMENTAL

Gets the last context of the Context Group currently subscribed to. It takes an optional Context Type and returns the last context of that type.

Parameters:
Name Type Attributes Description
contextType string <optional>
Tutorials:
Returns:
Type
Promise.<Context>

(async) getInfoForContextGroup(contextGroupId) → {Promise.<ContextGroupInfo>}

Gets display info for a context group Used by Platform Windows.

Parameters:
Name Type Description
contextGroupId string

The id of context group you wish to get display info for.

Tutorials:
Returns:
Type
Promise.<ContextGroupInfo>

(async) getInfoForIntent(options) → {Promise.<unknown>}

EXPERIMENTAL

Get information for a particular Intent from the Interop Broker.

Parameters:
Name Type Description
options InfoForIntentOptions
Tutorials:
Returns:
Type
Promise.<unknown>

(async) getInfoForIntentsByContext(context) → {Promise.<unknown>}

EXPERIMENTAL

Get information from the Interop Broker on all Intents that are meant to handle a particular context.

Parameters:
Name Type Description
context Context
Tutorials:
Returns:
Type
Promise.<unknown>

(async) joinContextGroup(contextGroupId, targetopt) → {Promise.<void>}

Join all Interop Clients at the given identity to context group contextGroupId. If no target is specified, it adds the sender to the context group. Because multiple Channel connections/Interop Clients can potentially exist at a uuid/name combo, we currently join all Channel connections/Interop Clients at the given identity to the context group. If an endpointId is provided (which is unlikely, unless the call is coming from an external adapter), then we only join that single connection to the context group. For all intents and purposes, there will only be 1 connection present in Platform and Browser implmentations, so this point is more-or-less moot. Used by Platform Windows.

Parameters:
Name Type Attributes Description
contextGroupId string

Id of the context group.

target Identity <optional>

Identity of the entity you wish to join to a context group.

Tutorials:
Returns:
Type
Promise.<void>

(async) joinSessionContextGroup(sessionContextGroupId) → {Promise.<SessionContextGroup>}

EXPERIMENTAL

Join the current entity to session context group sessionContextGroupId and return a sessionContextGroup instance. If the sessionContextGroup doesn't exist, one will get created. Session Context Groups do not persist between runs and aren't present on snapshots.

Parameters:
Name Type Description
sessionContextGroupId string

Id of the context group.

Tutorials:
Returns:
Type
Promise.<SessionContextGroup>

(async) onDisconnection(listener) → {Promise.<void>}

Register a listener that is called when the Interop Client has been disconnected from the Interop Broker. Only one listener per Interop Client can be set.

Parameters:
Name Type Description
listener
Tutorials:
Returns:
Type
Promise.<void>

(async) registerIntentHandler(handler, intentName) → {Promise.<Subscription>}

EXPERIMENTAL

Adds an intent handler for incoming intents. The last intent sent of the name subscribed to will be received.

Parameters:
Name Type Description
handler IntentHandler

Registered function meant to handle a specific intent type.

intentName string

The name of an intent.

Tutorials:
Returns:
Type
Promise.<Subscription>

(async) removeFromContextGroup(targetopt) → {Promise.<void>}

Removes the specified target from a context group. If no target is specified, it removes the sender from their context group. Used by Platform Windows.

Parameters:
Name Type Attributes Description
target Identity <optional>

Identity of the entity you wish to join to a context group.

Tutorials:
Returns:
Type
Promise.<void>

(async) setContext(context) → {Promise.<void>}

Sets a context for the context group of the current entity.

Parameters:
Name Type Description
context Context

New context to set.

Tutorials:
Returns:
Type
Promise.<void>