This repository contains a JavaScript polyfill of the Presentation API specification under standardisation within the Second Screen Working Group at W3C. The polyfill is mostly intended for exploring how the Presentation API may be implemented on top of different presentation mechanisms.
Presentation mechanisms that are currently supported are:
- Cast: Supports presenting to a Chromecast device using Google Chrome's Cast extension.
- DIAL: Supports presenting to a DIAL devices with a specific set of DIAL applications (that may be specified at runtime)
- HbbTV 2.0: Supports presenting to an HbbTV 2.0 device (HbbTV is a specific case of the DIAL mechanism in practice)
- QR Code: Generates and displays the URL that another device may pick up
- Physical Web: Supports broadcasting the URL to present through a Bluetooth Low-Energy device
- Window: Opens the presentation in a separate browser window
Important: The establishment of a communication channel between the peers is either not fully implemented (Cast, Window) or simply not available at all when it cannot be established automatically (DIAL, HbbTV, QR Code). The polyfill uses an isChannelOptional presentation request option flag to let the calling app specify whether it needs a communication channel (the default) or will handle the communication on its own.
Check the Presentation API polyfill home page.
- François Daoust <[email protected]>
- Dominique Hazaël-Massieux <[email protected]>
The source code is available under a W3C Software and Document License. Parts of the code depends on other third-party open-source libraries that are available under similar license (e.g. MIT).
This work was done with support from the European Commission under grant agreement no: 610404 (MediaScape).