API JavaScript
Controla el widget desde tu código con la función global PH(command, payload?, callback?).
Comandos
Todos los comandos se invocan mediante la función global PH(command, payload?, callback?). Los comandos pueden encolarse incluso antes de que embed.js se haya cargado.
| Comando | Payload | Descripción |
|---|---|---|
init | { widgetId, ssoToken?, badge? } | Inicializa el widget. Debe ser la primera llamada. Ver Opciones de init. |
identify | { id, email?, name?, ssoToken? } | Asocia la sesión actual del navegador con un usuario. Necesario para votar. Ver Identificar usuarios. |
unidentify | — | Limpia la identidad del usuario. Llamar al cerrar sesión. |
open | { tab? } | Abre el widget. Opcionalmente pasa tab: 'ideas' | 'roadmap' | 'announcements'. |
close | — | Cierra el widget. |
toggle | — | Abre si está cerrado, cierra si está abierto. |
viewSection | 'ideas' | 'roadmap' | 'announcements' | Abre el widget y navega a la sección indicada. |
on | (event, fn) | Suscribirse a un evento del widget. Ver Eventos. |
off | (event, fn) | Desuscribirse de un evento del widget. |
destroy | — | Elimina el iframe del widget del DOM y borra window.PH. |
Abrir, cerrar y alternar
PH('open'); // open on the default tab
PH('open', { tab: 'roadmap' }); // open directly on Roadmap
PH('close'); // close the widget
PH('toggle'); // toggle open / closedNavegar a una sección
// Navigate to a specific section
PH('viewSection', 'ideas');
PH('viewSection', 'roadmap');
PH('viewSection', 'announcements');Destruir
Usa destroy en aplicaciones de una sola página cuando quieras eliminar el widget al navegar fuera de una sección concreta de tu producto.
// Remove the widget from the page entirely
PH('destroy');PH.ready
PH.ready es una Promise<void> que se resuelve en cuanto el iframe del widget señala que se ha inicializado. Es seguro usarla para comandos diferidos que requieren que el widget esté completamente cargado antes de ejecutarse.
// PH.ready is a Promise that resolves once the widget has initialised
PH.ready.then(function() {
console.log('widget is ready');
PH('open');
});
// Or with async/await inside an async function
await PH.ready;
PH('viewSection', 'announcements');Los comandos habituales como open e identify se encolan automáticamente si se llaman antes de que el widget se cargue, por lo que generalmente no necesitas PH.ready. Es más útil cuando necesitas garantizar que el widget es interactivo antes de actuar.