Kassa ilmoittaa sivullesi, mitä se tekee. Tilaa ilmoitukset funktiolla on():
entase.on('checkout.ready', payload => {
console.log('checkout open for', payload.context.eventID);
});Yksi kuuntelija tapahtuman nimeä kohden
on() tallentaa yhden takaisinsoittokutsun tapahtuman nimeä kohden. Toisen takaisinsoittokutsun rekisteröiminen samalla nimellä korvaa ensimmäisen – se ei lisää sitä ensimmäiseen:
entase.on('checkout.closed', a);
entase.on('checkout.closed', b); // a poistuu; vain b suoritetaanoff() poistaa kyseiselle nimelle rekisteröidyn takaisinsoittokutsun. Se ohittaa sille välittämäsi takaisinsoittokutsun, joten off('checkout.closed', b) ja off('checkout.closed') tekevät saman asian.
Jos sivusi usean osan täytyy reagoida samaan tapahtumaan, rekisteröi yksi takaisinsoittokutsu ja välitä tapahtuma eteenpäin sen sisältä.
Usean tapahtuman tilaaminen kerralla
Molemmat metodit hyväksyvät välilyönnein erotellun merkkijonon tai nimitaulukon ja rekisteröivät saman takaisinsoittokutsun jokaiselle:
entase.on('checkout.ready checkout.closed', payload => {
console.log(payload.name);
});
entase.off(['checkout.ready', 'checkout.closed']);Payload
Jokainen takaisinsoittokutsu vastaanottaa yhden objektin:
| Kenttä | Tyyppi | Kuvaus |
|---|---|---|
name | merkkijono | Tapahtuman nimi, hyödyllinen, kun yksi takaisinsoittokutsu käsittelee useita tapahtumia. |
context | objekti | Sisältää eventID-arvon – tapahtuman, johon tämä kassa kuuluu. |
data | objekti | Tapahtumakohtaiset tiedot. |
Käytettävissä olevat tapahtumat
| Nimi | Milloin se käynnistyy |
|---|---|
checkout.ready | Kassa on latautunut ja valmis käytettäväksi. Tällöin asiakasohjelma vastaanottaa myös clientContext-arvon, jonka välitit funktiolle book(). |
checkout.closed | Kassa on suljettu. Asiakasohjelma purkaa paneelin tai ikkunan ja poistaa taustan. |
checkout.consent | Vierailija vastasi ehtoilmoitukseen. data.consent on true, kun hän hyväksyi ehdot, ja asiakasohjelma muistaa tämän, joten vaihe ohitetaan seuraavalla kerralla. |
entase.on('checkout.closed', () => {
document.body.classList.remove('checkout-open');
});
entase.on('checkout.consent', payload => {
if (payload.data.consent) console.log('terms accepted');
});Kuuntelijat säilyvät yksittäisten varausten välillä
Kuuntelijat kuuluvat instanssiin, eivät varaukseen. Rekisteröi ne kerran asiakasohjelman luomisen jälkeen, niin ne koskevat jokaista book()-kutsua. Erota varaukset toisistaan käyttämällä arvoa payload.context.eventID:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });
entase.on('checkout.closed', payload => {
refreshAvailability(payload.context.eventID);
});destroy()-kutsu pysäyttää ne kaikki – instanssi lakkaa kokonaan kuuntelemasta kassasta tulevia viestejä.
Muista lähteistä tulevat viestit ohitetaan
Asiakasohjelma hyväksyy viestejä vain Entase-kassan alkuperästä, joten sivusi asiaankuulumaton postMessage-liikenne ei koskaan saavuta takaisinsoittokutsujasi.