bcaster-lite-widget
An Embeddable web widget for the Bcaster Lite App
Getting Started
The BCaster Lite Widget can be installed/imported via
When imported via CDN, it exposes a global BCasterLiteWidget
which accepts configuration arguments
Example Usage
To get the BCaster Lite Widget working, copy any of the following code snippet examples that apply, into your web project and replace the appId value with your unique bcaster lite app Id
gotten from the BCaster Dashboard Credentials section.
⚠️ In order for the widget to mount, you are required to have an empty div (if using the default widget) or an anchor tag (if providing your own custom widget) with an id bcaster-widget
in your html page. The div or anchor tag should be on the page before the mount
function is triggered.
// For default widget
<div id="bcaster-floating-widget"></div>
or
// For a user custom widget - ensure the <a> tag has a blank href attribute
<a id="bcaster-widget" href="">
// Custom user html
</a>
Embedding via CDN
/* Using the default widget */
<script src="https://unpkg.com/@bcaster/bcaster-lite-widget@0.0.16/dist/bcaster-lite-widget.js"></script>
<script>
const widget = new BCasterLiteWidget({
appId: '7ddc01afa5f5e4d10d80eff0d173a8d1e0a3',
});
widget.mount();
</script>
or
/* Using a custom defined widget */
<script src="https://unpkg.com/@bcaster/bcaster-lite-widget@0.0.16/dist/bcaster-lite-widget.js"></script>
<script>
const widget = new BCasterLiteWidget({
appId: '7ddc01afa5f5e4d10d80eff0d173a8d1e0a3',
userDefinedWidget: true,
});
widget.mount();
</script>
Embedding via NPM (ES5 and older)
First install the package by running npm install @bcaster/bcaster-lite-widget
or yarn add @bcaster/bcaster-lite-widget
/* Using the default widget */
const BCasterLiteWidget = require('@bcaster/bcaster-lite-widget')
const widget = new BCasterLiteWidget({
appId:'7ddc01afa5f5e4d10d80eff0d173a8d1e0a3',
});
widget.mount();
or
/* Using a custom defined widget */
const BCasterLiteWidget = require('@bcaster/bcaster-lite-widget')
const widget = new BCasterLiteWidget({
appId:'7ddc01afa5f5e4d10d80eff0d173a8d1e0a3',
userDefinedWidget: true,
});
widget.mount();
Embedding via NPM (ES6 and later)
First install the package by running npm install @bcaster/bcaster-lite-widget
or yarn add @bcaster/bcaster-lite-widget
/* Using the default widget */
import BCasterLiteWidget from '@bcaster/bcaster-lite-widget'
const widget = new BCasterLiteWidget({
appId:'7ddc01afa5f5e4d10d80eff0d173a8d1e0a3',
});
widget.mount();
or
/* Using a custom defined widget */
import BCasterLiteWidget from '@bcaster/bcaster-lite-widget'
const widget = new BCasterLiteWidget({
appId:'7ddc01afa5f5e4d10d80eff0d173a8d1e0a3',
userDefinedWidget: true,
});
widget.mount();
Configuration Options
The Bcaster Lite widget library exposes a default BCasterLiteWidget Javascript class which accepts configuration options in the form of a standard Javascript Object. The configuration options signature are as follows
@param {Object} args Configuration values
@param {String} args.appId (Required) The unique App ID - Retrieved from the BCaster Dashboard
@param {Boolean} args.mobileView (Optional) {Defaults to true} Mobile view option indicating if widget should be visible only on mobile
@param {String} args.mode (Optional) {Defaults to `production`} Mode option for switching between `development` and `production`. This option allows the possibility to run in a sandbox environment
@param {String} args.lang (Optional) {Defaults to `en`} Language attribute for localization
@param {String} args.tag (Optional) {Defaults to the unique label} Tag defined for media categorization - Retrieved from the BCaster Dashboard
@param {Boolean} args.userDefinedWidget (Optional) {Default False} A boolean value to determine of the user would prefer to use thier own widget
@example
const widget = new BCasterLiteWidget({
appId: '21823638492719937299768436748628'
mobileView: false,
mode: 'development',
lang: 'en',
tag: 'bcaster',
userDefinedWidget: false
})
Supported Languages
Currently the following language options are supported
Caveat
🚨 IMPORTANT CAVEAT 🚨
This web widget programatically triggers a new tab which opens a specific instance of the bcaster web app that is custom to your appId. If you have restrictions/policy on your website that blocks opening new tabs then consider adding https://bcaster.com
to your allowList.
We open a new tab and connect to your web app instance via https
so the possibilities of it being blocked are quite slim however if it so happens that you have such policy even for secure connections then please do consider the above caveat.
CHANGELOG
Version 0.0.1
- Bcaster Lite Web App web widget.
Version 0.0.2
- Remove obsolete dependencies.
Version 0.0.3
- Update documentation for usage.
Version 0.0.4
- Add lang option for localization.
Version 0.0.5
- Fix bug related to
mode
configuration option. - Update documentation.
Version 0.0.6
- Update minified script to reduce bundle size.
Version 0.0.7
- Update documentation to use latest version in example.
Version 0.0.8
- Add
tag
option to enable better media content categorization. - Update unit tests to cover all instantiation scenarios.
- Update documentation.
Version 0.0.9
- Update documentation to highlight caveat for new tab opening.
Version 0.0.10
- Deprecate
tag
option from configuration options. - Introduce compulsory
label
option to configuartion options. - Update unit tests to cover new instantiation scenarios.
Version 0.0.11
- Re-introduce
tag
option to enable better media content categorization.
Version 0.0.12
- Bug fix for
tag
reference error.
Version 0.0.13
- Deprecate
label
option.
Version 0.0.14
- Switch codebase to typescript.
- Improve custom error messages output.
Version 0.0.15
- Introduce optional
userDefinedWidget
option to enable users define custom widgets. - Add accessibility check to ensure all user defined widgets are wrapped in an anchor tag.
- Update documentation examples to show how to use user defined widgets.
Version 0.0.16
- Improve build bundle size.
- Update documentation.