- Print
SecondScreen
- Print
SecondScreen Module 0.5.3
Usage
To use the SecondScreen module, you can import it into your project from the Firebolt SDK:
import { SecondScreen } from '@firebolt-js/sdk'
Overview
Methods for communicating with second screen devices
Events
launchRequest
Listen to the launchRequest event
// listen to launchRequest
SecondScreen.listen('launchRequest', (data: SecondScreenEvent) => void): Promise<bigint>
// listen to launchRequest once
SecondScreen.once('launchRequest', (data: SecondScreenEvent) => void): Promise<bigint>
// clear a listener
SecondScreen.clear(listenerId?: bigint): void
Event value
Type | Description |
---|---|
SecondScreenEvent | An a message notification from a second screen device |
Promise Resolution
Type | Description |
---|---|
bigint | Listener ID to clear() the callback method and stop receiving the event, e.g. SecondScreen.clear(id) |
Examples
##### Default Example
JavaScript
import { SecondScreen } from '@firebolt-js/sdk'
SecondScreen.listen('launchRequest', launchRequestEvent => {
console.log(launchRequestEvent)
})
Value of launchRequestEvent
{
"type": "dial",
"version": "1.7",
"data": "{\"code\":\"AQDPQZiQcb3KQ7gY7yy5tHTMbbkGHR9Zjp-KL53H3eKBZIeAt7O9UKYPu6B21l2UZVmIqkFXDXBmXvK4g2e3EgZtjMNmKPsTltgnRl95DImtOXjSpWtTjSaOkW4w1kZKUTwLKdwVWTzBVH8ERHorvLU6vCGOVHxXt65LNwdl5HKRweShVC1V9QsyvRnQS61ov0UclmrH_xZML2Bt-Q-rZFjey5MjwupIb4x4f53XUJMhjHpDHoIUKrjpdPDQvK2a\",\"friendlyName\":\"Operator_TX061AEI\",\"UDN\":\"608fef11-2800-482a-962b-23a6690c93c1\"}"
}
JSON-RPC
Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "secondscreen.onLaunchRequest",
"params": {
"listen": true
}
}
Response
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"type": "dial",
"version": "1.7",
"data": "{\"code\":\"AQDPQZiQcb3KQ7gY7yy5tHTMbbkGHR9Zjp-KL53H3eKBZIeAt7O9UKYPu6B21l2UZVmIqkFXDXBmXvK4g2e3EgZtjMNmKPsTltgnRl95DImtOXjSpWtTjSaOkW4w1kZKUTwLKdwVWTzBVH8ERHorvLU6vCGOVHxXt65LNwdl5HKRweShVC1V9QsyvRnQS61ov0UclmrH_xZML2Bt-Q-rZFjey5MjwupIb4x4f53XUJMhjHpDHoIUKrjpdPDQvK2a\",\"friendlyName\":\"Operator_TX061AEI\",\"UDN\":\"608fef11-2800-482a-962b-23a6690c93c1\"}"
}
}
##### Listen to an event only once
JavaScript
SecondScreen.listen('launchRequest', (value) => {
console.log(value)
}).then( (listenerId) => {
SecondScreen.clear(listenerId)
})
Alternately, simply call once()
:
SecondScreen.once('launchRequest', (value) => {
console.log(value)
})
##### Clear all listeners for an event
JavaScript
SecondScreen.clear('launchRequest')
closeRequest
Listen to the closeRequest event
// listen to closeRequest
SecondScreen.listen('closeRequest', (data: SecondScreenEvent) => void): Promise<bigint>
// listen to closeRequest once
SecondScreen.once('closeRequest', (data: SecondScreenEvent) => void): Promise<bigint>
// clear a listener
SecondScreen.clear(listenerId?: bigint): void
Event value
Type | Description |
---|---|
SecondScreenEvent | An a message notification from a second screen device |
Promise Resolution
Type | Description |
---|---|
bigint | Listener ID to clear() the callback method and stop receiving the event, e.g. SecondScreen.clear(id) |
Examples
##### Default Example
JavaScript
import { SecondScreen } from '@firebolt-js/sdk'
SecondScreen.listen('closeRequest', closeRequestEvent => {
console.log(closeRequestEvent)
})
Value of closeRequestEvent
{
"type": "dial",
"version": "1.7"
}
JSON-RPC
Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "secondscreen.onCloseRequest",
"params": {
"listen": true
}
}
Response
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"type": "dial",
"version": "1.7"
}
}
##### Listen to an event only once
JavaScript
SecondScreen.listen('closeRequest', (value) => {
console.log(value)
}).then( (listenerId) => {
SecondScreen.clear(listenerId)
})
Alternately, simply call once()
:
SecondScreen.once('closeRequest', (value) => {
console.log(value)
})
##### Clear all listeners for an event
JavaScript
SecondScreen.clear('closeRequest')
Methods
protocols
Get the supported second screen discovery protocols
function protocols(): Promise<BooleanMap>
Promise Resolution
Type | Description |
---|---|
BooleanMap | the supported protocols |
Examples
##### Default Example
JavaScript
import { SecondScreen } from '@firebolt-js/sdk'
SecondScreen.protocols()
.then(protocols => {
console.log(protocols)
})
Value of protocols
{
"dial1.7": true
}
JSON-RPC
###### Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "secondscreen.protocols",
"params": {}
}
###### Response
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"dial1.7": true
}
}
device
Get the broadcasted id for the device
function device(type?: string): Promise<string>
Parameters
Param | Type | Required | Summary |
---|---|---|---|
type | string | false | The type of second screen protocol, e.g. "dial" |
Promise Resolution
Type | Description |
---|---|
string | the device id |
Examples
##### Default Example
JavaScript
import { SecondScreen } from '@firebolt-js/sdk'
SecondScreen.device(null)
.then(deviceId => {
console.log(deviceId)
})
Value of deviceId
"device-id"
JSON-RPC
###### Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "secondscreen.device",
"params": {}
}
###### Response
{
"jsonrpc": "2.0",
"id": 1,
"result": "device-id"
}
friendlyName
Get the broadcasted friendly name for the device
function friendlyName(type?: string): Promise<string>
Parameters
Param | Type | Required | Summary |
---|---|---|---|
type | string | false | The type of second screen protocol, e.g. "dial" |
Promise Resolution
Type | Description |
---|---|
string | the device friendly-name |
Examples
##### Default Example
JavaScript
import { SecondScreen } from '@firebolt-js/sdk'
SecondScreen.friendlyName(null)
.then(friendlyName => {
console.log(friendlyName)
})
Value of friendlyName
"Living Room"
JSON-RPC
###### Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "secondscreen.friendlyName",
"params": {}
}
###### Response
{
"jsonrpc": "2.0",
"id": 1,
"result": "Living Room"
}