Aller au contenu
Livstick Développeurs

Prérequis

Un conteneur déjà créé, avec son urid et son editKey — voir Effectuer votre première requête API.

Importer et définir l’élément

defineLivstickWidget enregistre l’élément personnalisé dans le document. Appelez cette fonction une seule fois, avant d’insérer la balise.

JS importer depuis /element
import { defineLivstickWidget } from "@livstick/widget-react-v2/element";

defineLivstickWidget();

Placer la balise

uid est l’urid du conteneur, et domain est l’hôte à partir duquel le widget résout les URL d’enregistrement et de ressources.

HTML livstick-widget-v2
<livstick-widget-v2 uid="code" domain="example.com"></livstick-widget-v2>

Passer config et editKey en propriétés

config, editKey et replyToken sont exclusivement des propriétés JavaScript de l’élément — ils ne sont jamais reflétés en attributs HTML. Définir editKey comme attribut HTML n’a strictement aucun effet : c’est l’erreur la plus fréquente avec ce mode de montage. Définissez-les dès que vous disposez d’une référence à l’élément.

JS widget.config, widget.editKey
const widget = document.querySelector("livstick-widget-v2");
widget.config = { version: 2, behavior: { messageEnabled: true } };
widget.editKey = editKey;

Définir les autres attributs

Tout ce que le widget lit dans le balisage est un véritable attribut HTML : lang, api-key, api-url, sender-email, autogenerate-urid, debug, fullscreen-desktop, use-media-recorder-on-mobile, edit et instance-id, en plus de uid et domain vus à l’étape précédente. style-url est aussi un attribut ; il remplace l’URL de la feuille de style.

HTML attributs
<livstick-widget-v2
  uid="code"
  domain="example.com"
  lang="en"
  fullscreen-desktop="true"
></livstick-widget-v2>

Écouter les événements et appeler les méthodes

L’élément émet quatre événements composés : livstick:ready, livstick:route-change, livstick:recorded et livstick:error. Il expose aussi trois méthodes : record(), reset() et cancelUpload(). L’élément est isolé par Shadow DOM : les feuilles de style de la page hôte ne l’atteignent pas — le widget se stylise via sa propre feuille de style, pas avec des sélecteurs au niveau de la page.

JS livstick:recorded
widget.addEventListener("livstick:recorded", () => {
  // message captured — update your interface here
});

Étapes suivantes

La balise script classique monte le même widget via un loader et une page fullpage.html adaptée aux iframes — l’option à privilégier quand la page hôte ne peut pas du tout exécuter de bundler.