Class: Fdc3

Fdc3

The FDC3 Client Library provides a set APIs to be used for FDC3 compliance, while using our Interop API under the hood. In order to use this set of APIs you will need to set up your own InteropBroker or use a Platform application, which does the setup for you. Refer to our documentation on our Interop API.

We currently support APIs based on FDC3 1.2. To enable the FDC3 APIs in a Window or View, add the fdc3InteropApi property to its options:

{
    autoShow: false,
    saveWindowState: true,
    url: 'https://openfin.co',
    fdc3InteropApi: '1.2'
}

If using a Platform application, you can set this property in defaultWindowOptions and defaultViewOptions.

Methods

(static) addContextListener(contextType, handler) → {Listener}

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. If you wish to listen for all incoming contexts, pass null for the contextType argument.

Parameters:
Name Type Description
contextType string | null

The type of context you wish to handle.

handler ContextHandler

Handler for incoming context.

Tutorials:
Returns:
Type
Listener

(static) addIntentListener(intent, handler) → {Listener}

Adds a listener for incoming Intents.

Parameters:
Name Type Description
intent string

Name of the Intent

handler IntentHandler

Handler for incoming Intent

Tutorials:
Returns:
Type
Listener

(async, static) broadcast(context) → {Promise.<void>}

Broadcasts a context for the channel of the current entity.

Parameters:
Name Type Description
context Context

New context to set.

Tutorials:
Returns:
Type
Promise.<void>

(async, static) getSystemChannels() → {Promise.<Array.<Channel>>}

Returns the Interop-Broker-defined context groups available for an entity to join.

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

(async, static) joinChannel(channelId) → {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 implementations, so this point is more-or-less moot.

Parameters:
Name Type Description
channelId string

Id of the context group.

Tutorials:
Returns:
Type
Promise.<void>

(async, static) leaveCurrentChannel() → {Promise.<void>}

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

Tutorials:
Returns:
Type
Promise.<void>

(async, static) raiseIntent(intent, context, app) → {IntentResolution}

Raises a specific intent.

Parameters:
Name Type Description
intent string

Name of the Intent.

context Context

Context associated with the Intent.

app TargetApp

App that will resolve the Intent. This is added as metadata to the Intent. Can be accessed by the app provider in InteropBroker.handleFiredIntent.

Tutorials:
Returns:
Type
IntentResolution