io.Connect Desktop JavaScript Library
The @interopio/desktop
` library enables web apps to participate in io.Connect Desktop and use io.Connect functionalities via a set of APIs.
Features
The io.Connect Desktop library includes the following APIs:
- App Management API - manage and monitor interop-enabled apps and their instances;
- App Preferences API - store custom user-specific data and retrieve it when necessary;
- Intents API - raise requests for other apps to handle predefined actions (Intents), register apps as Intent handlers, provide users programmatically with options for handling raised Intents via the Intents Resolver UI app;
- Data sharing:
- Shared Contexts API - create, update and track named data objects shared by all interop-enabled apps;
- Channels API - globally accessed named shared contexts that allow users to dynamically group apps from an UI, instructing them to work over the same shared data object;
- Interop API - offer and consume functionality from other interop-enabled apps by registering Interop methods and streams;
- Pub/Sub API - basic API that allows apps to publish and subscribe for messages on a specific topic;
- Windows:
- Window Management API - create and manipulate various types of io.Connect windows;
- Layouts API - save and restore the arrangement of any set of apps running in io.Connect Desktop;
- Themes API - control the available io.Connect themes programmatically;
- Notifications API - raise notifications, handle notification and action clicks via Interop methods, control the Notification Panel and subscribe for notification events;
- Metrics API - assess the life cycle of a certain process (app performance, business process, employee productivity, and more) by acquiring, recording and monitoring specific data over time;
- Hotkeys API - register key combinations and receive notifications when a key combination is pressed by the user, regardless of whether the app is on focus or not;
- Displays API - capture programmatically screenshots of the available monitors, of windows and window groups;
- Cookies API - enables web apps to manage cookies;
For more information, see the io.Connect Desktop documentation.
Usage
The @interopio/desktop
library attaches a factory function called IODesktop()
to the global window
object. Call the factory function to initialize the library and access the io.Connect functionalities from the returned API object:
import IODesktop from "@interopio/desktop";
const io = await IODesktop();
Optionally, provide a configuration object for the library initialization. The following example demonstrates enabling the Channels API, which is disabled by default, and additionally initializing the io.Connect Workspaces API:
import IODesktop from "@interopio/desktop";
import IOWorkspaces from "@interopio/workspaces-api";
const config = {
channels: true,
libraries: [IOWorkspaces]
};
const io = await IODesktop(config);
const allChannelNames = await io.channels.all();
await io.workspaces.restoreWorkspace("My Workspace");