OpenFin

Platform API

Requirements

  • To tour through the API, you'll need to have the OpenFin CLI Installed. Instructions for installation are here: https://developers.openfin.co/docs/openfin-cli-tool
  • OpenFin Runtime version 15.80.49.30+ (Experimental in v15.80.49.30)
  • Windows Operating System - running Platforms on Mac is not yet fully supported and can result in unexpected behavior

Overview

Building a desktop platform is hard work, especially when the teams providing apps and content each have their own design approaches and sensibilities. With the OpenFin Platform API, we’ve made the job incredibly simple. The central architecture team defines window styling and behaviors; development teams provide the apps and content.

  • The Platform API is included in OpenFin’s JavaScript API

  • Layouts give app providers the ability to embed multiple web apps, or "Views", in a single window

  • Support for tabbed, grid, and fixed Layout configuration of Views within the window

  • Support for a custom platform manager to provide end-user ability to create layouts for each window

  • Applications have the ability to customize windows and keyboard commands

Dependencies

  • OpenFin Runtime version 15.80.49.30+ [Experimental]

Architecture

A Platforms application has the following architecture:

  • A Platform Controller that exposes functionality for coordinating views and windows.
  • One or more child windows of the controller, which may or may not have a layout of views. A collection of windows is referred to as a snapshot.
  • One or more views, which provide content. These can be split into as many render processes as needed. They reside as part of a window's layout.

All of the child windows of a Platforms application share a single renderer process. The views of an app share a process based on same-origin policy. Views can be separated into further processes by providing a processAffinity option. If you would like to have two or more views share a process separate from other views, you can give them the same processAffinity string. If you’ve architected your platform into multiple apps in order to manage render processes, it is now possible to have multiple processes in a single app.

Known issues

  • Drag regions exhibit erratic behavior in Mac
  • Network errors encountered during page load can cause error messages to flash if page loads successfully

RoadMap

Feature Set
ETA / Delivered
OF Version
  • Snapshot restoration improvements
  • Default View Options

14.78.48.*

15.80.49.*

15.80.50.*

16.83.51.*

  • "Detached" or "Pooled" Views
  • Unclosable Views
  • Focus Indication
  • Ability to constrain drag to tab headers

16.83.52.*

  • Window.open / fin.Window.create support
  • Multi-Runtime Support
  • Branding Support / Window Titles
  • Platform-Defined Dialogs & Menus
  • Multi Runtime FDC3 Support
  • Full Mac Support

TBD

TBD

Updated 5 days ago


Platform API


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.