UNPKG

@interopio/desktop

Version:

JavaScript library for io.Connect Desktop clients.

56 lines (41 loc) 3.31 kB
# io.Connect Desktop JavaScript Library The [`@interopio/desktop`](https://www.npmjs.com/package/@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](https://docs.interop.io/desktop/). ## Usage The [`@interopio/desktop`](https://www.npmjs.com/package/@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: ```javascript 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: ```javascript import IODesktop from "@interopio/desktop"; import IOWorkspaces from "@interopio/workspaces-api"; const config = { channels: true, libraries: [IOWorkspaces] }; const io = await IODesktop(config); // Accessing the io.Connect APIs. const allChannelNames = await io.channels.all(); await io.workspaces.restoreWorkspace("My Workspace"); ```