Skip to content

Latest commit

 

History

History
85 lines (64 loc) · 3.12 KB

File metadata and controls

85 lines (64 loc) · 3.12 KB

SliceMessengerFactory

Static class that is used to create SliceMessenger.

Static properties

Name type Description
transports Array Array of available SliceMessageTransport transports

Static methods

addTransport(transport)

Add SliceMessageTransport transport to the array of available transports It's important to add atleast one SliceMessageTransport transport, so it will be possible to create SliceMessenger messengers

Example:
// create SliceLocalStorageTransport
const transport = new SliceLocalStorageTransport();
// add transport
SliceMessengerFactory.addTransport(transport);
static getIdFromURL(searchURL)

Get messengerId from get parameters of searchURL.

Example:
const messengerId = SliceMessengerFactory.getIdFromURL('https://frame.html?messengerId=my-messenger-id');
console.log(messengerId); // will log 'my-messenger-id'
static getAvailableTransport()

Get first available SliceMessageTransport transport from array of transports.

Example:
// create SliceLocalStorageTransport
const transport = new SliceLocalStorageTransport();
// add transport
SliceMessengerFactory.addTransport(transport);
// get available transport
const availableTransport = SliceMessengerFactory.getAvailableTransport();
static createMessenger(id = SliceMessengerFactory.getIdFromURL(location.search), transport = SliceMessengerFactory.getAvailableTransport())

Create SliceMessenger messenger with provided id and SliceMessageTransport transport.

  1. If id is not provided, will try to get id from current page URL with SliceMessengerFactory.getIdFromURL.
  2. If transport is not provided, will try to get available transport with SliceMessengerFactory.getAvailableTransport.
Example:
// create SliceLocalStorageTransport
const myTransport = new SliceLocalStorageTransport();
// add transport
SliceMessengerFactory.addTransport(myTransport);
/**
 * Create messenger with no arguments.
 * Will get id from current page URL messengerId get parameter.
 * Will get available transport from array of SliceMessengerFactory transports.
 * Beware cause it can throw errors:
 * if there is no 'messengerId' in get parameters,
 * if no transport available.
 */
const messenger = SliceMessengerFactory.createMessenger();
/**
 * Create messenger with 'myMessenger' id.
 * Will get available transport from array of SliceMessengerFactory transports.
 * Beware cause it can throw errors:
 * if there is no transport available.
 */
const messenger = SliceMessengerFactory.createMessenger('myMessenger');
// create messenger with 'myMessenger' id and myTransport transport
const messenger = SliceMessengerFactory.createMessenger('myMessenger', myTransport);