• Back to io.Connect Desktop docs
io.Connect Desktop Documentation

API Reference Documentation

  • Back to io.Connect Desktop docs
Press/
  • io.Connect Desktop
  • App Management
  • App Preferences
  • Channels
  • Cookies
  • Displays
  • Hotkeys
  • Intents
  • Interception
  • Interop
  • Layouts
  • Logger
  • Metrics
  • Notifications
  • Pub Sub
  • Search
  • Shared Contexts
  • Themes
  • Windows
  • Workspaces

Channels

6.13.0

Channels are globally accessed named contexts that allow users to dynamically group apps, instructing them to work over the same shared data object. When apps are on the same Channel, they share a context data object which they can monitor and/or update.

The Channels API is accessible through the io.channels object.

APIobject

Description

Channels API.

Properties

Property Type Default Required Description
mode OperationMode "single"

Retrieves the current Channel mode (single or multi Channel). Set by the io.Connect framework based on configuration.

Available since io.Connect Desktop 9.7

Methods

  • add
  • all
  • clearChannelData
  • get
  • getMy
  • getMyChannels
  • getRestrictions
  • getWindowsOnChannel
  • getWindowsWithChannels
  • join
  • leave
  • list
  • my
  • myChannels
  • onChanged
  • onChannelsChanged
  • publish
  • remove
  • restrict
  • restrictAll
  • setPath
  • setPaths
  • subscribe
  • subscribeFor

addmethod

Signature

(info: ChannelContext) => Promise<ChannelContext>

Description

Adds a new Channel.

Parameters

Name Type Required Description
info ChannelContext

Initial Channel context.

allmethod

Signature

() => Promise<string[]>

Description

Retrieves a list of all Channel names.

clearChannelDatamethod

Signature

(channel?: string) => Promise<void>

Description

Clears the context data of the current Channel. The data property of the Channel context is set to an empty object. Pass a Channel name as an argument to clear the data of a specific Channel.

Available since io.Connect Desktop 9.8

Parameters

Name Type Required Description
channel string

Name of the Channel whose context data to clear.

getmethod

Signature

(name: string, options?: FDC3Options) => Promise<ChannelContext>

Description

Retrieves the context of a specified Channel.

Parameters

Name Type Required Description
name string

The name of the Channel whose context to retrieve.

options FDC3Options

Settings for retrieving an FDC3 context published in the io.Connect Channel. Available since io.Connect Desktop 9.6.

getMymethod

Signature

(options?: FDC3Options) => Promise<ChannelContext>

Description

Retrieves the context of the current Channel. It's recommended to use the getMyChannels() method instead, which can retrieve the contexts of the currently joined Channels both in single and in multi Channel mode.

Parameters

Name Type Required Description
options FDC3Options

Settings for retrieving an FDC3 context published in the io.Connect Channel. Available since io.Connect Desktop 9.6.

getMyChannelsmethod

Signature

(options?: FDC3Options) => Promise<ChannelContext[]>

Description

Retrieves a list with the contexts of the current Channels. Can be used both in single and in multi Channel mode. If used in single Channel mode, the returned array will always contain a single member if the window is joined to a Channel, or will be empty otherwise.

Available since io.Connect Desktop 9.7

Parameters

Name Type Required Description
options FDC3Options

getRestrictionsmethod

Signature

(windowId?: string) => Promise<Restrictions>

Description

Retrieves the restrictions applied to the current window for publishing or subscribing to Channels. Pass a window ID to retrieve the restrictions for the specified window.

Available since io.Connect Desktop 9.3

Parameters

Name Type Required Description
windowId string

ID of the window for which to retrieve the applied restrictions for publishing or subscribing to Channels.

getWindowsOnChannelmethod

Signature

(channel: string) => Promise<IOConnectWindow[]>

Description

Retrieves all windows on a specified Channel.

Parameters

Name Type Required Description
channel string

getWindowsWithChannelsmethod

Signature

(filter?: WindowWithChannelFilter) => Promise<WindowOnChannelInfo[]>

Description

Retrieves all windows that can use Channels together with their current Channel.

Parameters

Name Type Required Description
filter WindowWithChannelFilter

Filter describing which windows to retrieve. If no filter is supplied, will return all windows that can use Channels.

joinmethod

Signature

(name: string, windowId?: string) => Promise<void>

Description

Joins a new Channel by name. Leaves the current Channel.

Parameters

Name Type Required Description
name string

The name of the Channel to join.

windowId string

ID of a window which to join to a Channel. If not provided, will join the current window to the specified Channel.

leavemethod

Signature

(options?: string | { windowId?: string; channel?: string; }) => Promise<void>

Description

Removes the current or a specified window from the current or a specified Channel.

Parameters

Name Type Required Description
options string | { windowId?: string; channel?: string; }

Options for leaving Channels. You can provide only the window ID, or an object holding the window ID and the name of the Channel to leave. In either case, if only a window ID is provided, the specified window will be removed from the current Channel if in single Channel mode, or from all currently joined Channels if in multi Channel mode. If you provide only the name of the Channel to leave, the current window will be removed from the specified Channel. If you don't provide an argument, the current window will be removed from the current Channel if in single Channel mode, or from all currently joined Channels if in multi Channel mode.

listmethod

Signature

() => Promise<ChannelContext[]>

Description

Retrieves a list of all Channel contexts.

mymethod

Signature

() => string

Description

Retrieves the name of the current Channel. It's recommended to use the myChannels() method instead, which can retrieve the names of the currently joined Channels both in single and in multi Channel mode.

myChannelsmethod

Signature

() => string[]

Description

Retrieves a list with the names of the current Channels. Can be used both in single and in multi Channel mode. If used in single Channel mode, the returned array will always contain a single member if the window is joined to a Channel, or will be empty otherwise.

Available since io.Connect Desktop 9.7

onChangedmethod

Signature

(callback: (channel: string) => void) => () => void

Description

Notifies when the current window joins or leaves a Channel. Returns an unsubscribe function. It's recommended to use the onChannelsChanged() method instead, which can handle Channel changes both in single and in multi Channel mode.

Parameters

Name Type Required Description
callback (channel: string) => void

Callback function for handling the event. Receives as an argument the name of the Channel which the window has joined or left.

onChannelsChangedmethod

Signature

(callback: (channels: string[]) => void) => () => void

Description

Notifies when the current window joins or leaves a Channel. Can be used both in single and in multi Channel mode. If used in single Channel mode, when the window joins a Channel, the array argument passed to the callback for handling the event will always contain a single member; when the window leaves the current Channel, the array will be empty. Returns an unsubscribe function.

Available since io.Connect Desktop 9.7

Parameters

Name Type Required Description
callback (channels: string[]) => void

Callback function for handling the event. Receives a list with the names of the currently joined Channels as an argument.

publishmethod

Signature

(data: any, options?: string | PublishOptions) => Promise<void>

Description

Updates the context of the current or a specified Channel.

Parameters

Name Type Required Description
data any

Data object with which to update the Channel context.

options string | PublishOptions

The name of the Channel to update, or an object containing the name of the Channel to update and a flag indicating whether the published data is an FDC3 context. If no options are provided, the current Channel will be updated.

removemethod

Signature

(channel: string) => Promise<void>

Description

Removes a Channel.

Parameters

Name Type Required Description
channel string

The name of the Channel to remove.

restrictmethod

Signature

(restrictions: ChannelRestrictions) => Promise<void>

Description

Prevents or allows the current or another window to publish or subscribe to a specific Channel.

Available since io.Connect Desktop 9.3

Parameters

Name Type Required Description
restrictions ChannelRestrictions

Restrictions for publishing or subscribing to a specific Channel.

restrictAllmethod

Signature

(restrictions: RestrictionsConfig) => Promise<void>

Description

Prevents or allows the current or another window to publish or subscribe to all Channels.

Available since io.Connect Desktop 9.3

Parameters

Name Type Required Description
restrictions RestrictionsConfig

Restrictions for publishing or subscribing to all Channels.

setPathmethod

Signature

(path: PathValue, name?: string) => Promise<void>

Description

Sets a specified path within the Channel context to the provided value. If the path doesn't exist, it will be created.

Parameters

Name Type Required Description
path PathValue

Object containing the path to update and the value with which to update it. The path must be specified as a dot-separated string (e.g., "prop1.prop2").

name string

Name of the Channel to update. If not specified, will update the current Channel.

setPathsmethod

Signature

(paths: PathValue[], name?: string) => Promise<void>

Description

Sets a list of specified paths within the Channel context to the provided values. If a path doesn't exist, it will be created.

Parameters

Name Type Required Description
paths PathValue[]

List of objects each containing a path to update and the value with which to update it. The path must be specified as a dot-separated string (e.g., "prop1.prop2").

name string

Name of the Channel to update. If not specified, will update the current Channel.

subscribemethod

Signature

(callback: (data: any, context: ChannelContext, updaterId: string) => void, options?: FDC3Options) => () => void

Description

Subscribes for data updates of the current Channel. Persisted after a Channel change. Returns an unsubscribe function.

Parameters

Name Type Required Description
callback (data: any, context: ChannelContext, updaterId: string) => void

Callback function for handling the received data. The callback receives as arguments the updated Channel data, the current Channel context and the ID of the updating app instance.

options FDC3Options

Settings for subscribing to an FDC3 context published in the io.Connect Channel. Available since io.Connect Desktop 9.6.

subscribeFormethod

Signature

(name: string, callback: (data: any, context: ChannelContext, updaterId: string) => void, options?: FDC3Options) => Promise<() => void>

Description

Subscribes for data updates of a specified Channel. Resolves with an unsubscribe function.

Parameters

Name Type Required Description
name string

The Channel to which to subscribe.

callback (data: any, context: ChannelContext, updaterId: string) => void

Callback function for handling the received data. The callback receives as arguments the updated Channel data, the current Channel context and the ID of the updating app instance.

options FDC3Options

Settings for subscribing to an FDC3 context published in the io.Connect Channel. Available since io.Connect Desktop 9.6.

ChannelContextobject

Description

Describes a Channel context.

Properties

Property Type Default Required Description
data { [key: string]: any; fdc3?: FDC3Context; }

Channel context data.

meta any

Channel meta data (display name, color, image and more).

name string

Unique name of the Channel context.

ChannelRestrictionsobject

Description

Restrictions applied to a window for publishing or subscribing to a specific Channel.

Properties

Property Type Default Required Description
name string

Name of the Channel for which the restrictions apply.

read boolean

If true, the window will be able to subscribe to the specified Channel.

windowId string

ID of the window for which apply the restrictions for publishing or subscribing to Channels.

write boolean

If true, the window will be able to publish to the specified Channel.

Configurationobject

Description

Settings for the Channels API.

Properties

Property Type Default Required Description
enabled boolean false

If true, will enable the Channels API.

FDC3Contextobject

Properties

Property Type Default Required Description
id { [key: string]: any; }

Context data objects may contain equivalent key-value pairs for identifying and looking up context types, with optional identifiers to support various applications, though some types may require at least one identifier.

name string

Context data objects may include a "name" property for additional information or display, with some derived types making it mandatory based on the use case.

type string

Required field in the FDC3 context data schema, essential for routing context data and for intent discovery within the FDC3 ecosystem.

FDC3Optionsobject

Description

Settings for retrieving and subscribing for FDC3 contexts published in an io.Connect Channel.

Available since io.Connect Desktop 9.6

Properties

Property Type Default Required Description
contextType string

Type of the FDC3 context to retrieve or to which to subscribe.

PublishOptionsobject

Description

Options for updating a Channel context with the publish() method.

Properties

Property Type Default Required Description
fdc3 boolean

Flag indicating whether the published data is an FDC3 context. If so, it must contain a required type property.

name string

The name of the Channel to update. If not provided, the current Channel will be updated.

Restrictionsobject

Description

All restrictions applied to a window for publishing or subscribing to Channels.

Properties

Property Type Default Required Description
channels ChannelRestrictions[]

List of restrictions for publishing or subscribing to Channels.

RestrictionsConfigobject

Description

Restrictions applied to a window for publishing or subscribing to all Channels.

Properties

Property Type Default Required Description
read boolean

If true, the window will be able to subscribe to the specified Channel.

windowId string

ID of the window for which apply the restrictions for publishing or subscribing to Channels.

write boolean

If true, the window will be able to publish to the specified Channel.

WindowOnChannelInfoobject

Description

Describes an io.Connect Window that can use Channels.

Properties

Property Type Default Required Description
application string

The name of the app of which the io.Connect Window is an instance.

channel string

The current Channel of the io.Connect Window. May be undefined if no Channel is selected.

window IOConnectWindow

The io.Connect Window object.

WindowWithChannelFilterobject

Description

Filter that will be applied when looking for io.Connect Windows that can use Channels.

Properties

Property Type Default Required Description
application string

Will retrieve only io.Connect Windows that are instances of the specified app.

channels string[]

Will retrieve all io.Connect Windows that are on the specified list of Channels.

windowIds string[]

IDs of io.Connect Windows which to retrieve.

  • Home
  • Privacy policy
  • Contact Us
  • interop.io
  • Overview
  • API
  • ChannelContext
  • ChannelRestrictions
  • Configuration
  • FDC3Context
  • FDC3Options
  • PublishOptions
  • Restrictions
  • RestrictionsConfig
  • WindowOnChannelInfo
  • WindowWithChannelFilter
Navigate
Go