website logo
CommunityDocumentation
JavaScript SDK
Web App Plugins
Cloud One-Touch Join
Request License
Navigate through spaces
JavaScript SDK
Web App Plugins
Cloud One-Touch Join
Request License
⌘K
Create a plugin
Files structure
Defining the plugin capabilities
Adding functionality
Create a branding package
Upload to Infinity
Plugin Gallery
Anonymizer
Breakout Rooms
Change Layout
Chat Notify
Directory
Fullscreen
Maintain URL
Move to Waiting Room
Raise Hand Notification
Recording
Rename Participant
Screenshot
Server Mute Notifier
Start Muted
Survey
Video Mute Participant
Docs powered by archbee 
21min

Defining the plugin capabilities

The <name>.plugin.package.json file contains metadata that is used to render a plugin within the Pexip webapp2 application. This file contains information such as the target platforms, the roles that use the plugin, and the toolbar locations. This page will give an example file and explore what the settings are for and options for their use.

JSON
|

In the above example, the plugin is named layoutControl and has a toolbar icon at the bottom of the webapp2 application. An explanation of each setting is below. Please note that these settings are shown in their correct case, lower case values are not a grammatical error and should be utilized exactly as written here.

Valid Package Keys

id

This is a unique identifier for this plugin, it will be used later in the settings of the webapp2 application to instantiate the plugin.

name

This is a friendly name of the plugin and is used to name the plugin in a friendly way to the user thus allowing them to know which plugin they are interacting with, this is especially useful if a user needs to unload or reload a plugin as they can easily identify what it is used for. In the above example, the name is in camel case but this may be in any format the plugin developer deems appropriate.

description

This is a description of the plugin.

version

This is the version of the plugin, it is used to track the version that is installed inside of the webapp2 application in case it is required to roll the plugin back or forward. It is essential that the plugin developer use this version to ensure that the appropriate version can be identified by the user.

srcURL

This is the filename of the actual plugin logic. This file will be explored later in this documentation. It is important that this name is exactly the same name as the plugin code file. In the above example, it is referencing the layoutControl.plugin.js file that is located in the same folder as the plugin.package.json file.

allowUnload

This setting allows or disallows the unloading of the plugin. This is important as it may mean that a plugin is unloaded and not run. This would be set to false for critical plugins that should always run.

platforms

This specifies the platforms that the plugin should run on. Valid platforms are listed below.

  • web - run in web versions of webapp2
  • electron - run in electron-based apps, such as the infinity application
  • ios - run on iOS-based devices
  • android - run on Android-based devices

participantRoles

This determines the user role that the plugin will run for. An example of this might be a layout control plugin that should only be used by a host. Valid roles are listed below.

  • host - the host of the meeting, that has successfully authenticated with a PIN (if PIN's are enabled)
  • guest - a guest of a meeting that has joined a host-based meeting

menuItems

This is used to specify where access to the plugin should be kept, if a plugin requires user interaction to perform an action the code for the button to allow user interaction will go here. There are 2 valid placements of menuItems for a webapp2 application. These are listed below.

toolbar

This is located at the bottom of the webapp2 application where the call controls are located. By placing an item here it will show at the end of this call control bar.

Toolbar location
Toolbar location

An example of adding an item to the toolbar location is below.

JSON
|

participants

This menu item is shown when a user clicks on a participant in the roster list. When the participant is clicked, a menu opens and the plugin will be shown at the bottom of this list.



Participants location
Participants location

An example of adding an item to the participants location is below.

JSON
|

Menu Item Keys

The menu item contains 3 different key/value pairs. Each of these are listed below with a short explanation of each.

  • icon - the icon for the button, this is an absolute path to the file in relation to the plugin.package.json file
  • label - the label to display on hover of the icon
  • action - the action, or function name, that is called from the plugin.js file when the button is pushed

Feedback

Do you have any suggestions? Get in contact with us here.

Updated 18 May 2022
Did this page help you?
Yes
No
UP NEXT
Adding functionality
Docs powered by archbee 
TABLE OF CONTENTS
Valid Package Keys
id
name
description
version
srcURL
allowUnload
platforms
participantRoles
menuItems
Menu Item Keys
Feedback