Okno zakupu przekazuje Twojej stronie informacje o tym, co robi. Zasubskrybuj zdarzenia za pomocą on():
entase.on('checkout.ready', payload => {
console.log('checkout open for', payload.context.eventID);
});Jeden nasłuchiwacz na nazwę zdarzenia
on() przechowuje jedno wywołanie zwrotne dla każdej nazwy zdarzenia. Zarejestrowanie drugiego wywołania zwrotnego dla tej samej nazwy zastępuje pierwsze – nie dodaje go do niego:
entase.on('checkout.closed', a);
entase.on('checkout.closed', b); // a is gone; only b runsoff() usuwa wszystko, co jest zarejestrowane dla danej nazwy. Ignoruje wszelkie przekazane mu wywołanie zwrotne, więc off('checkout.closed', b) i off('checkout.closed') działają tak samo.
Jeśli kilka części Twojej strony musi reagować na to samo zdarzenie, zarejestruj jedno wywołanie zwrotne i rozdziel obsługę wewnątrz niego.
Subskrybowanie kilku zdarzeń jednocześnie
Obie metody przyjmują ciąg znaków z nazwami oddzielonymi spacjami lub tablicę nazw, rejestrując to samo wywołanie zwrotne dla każdej z nich:
entase.on('checkout.ready checkout.closed', payload => {
console.log(payload.name);
});
entase.off(['checkout.ready', 'checkout.closed']);Ładunek
Każde wywołanie zwrotne otrzymuje jeden obiekt:
| Pole | Typ | Opis |
|---|---|---|
name | string | Nazwa zdarzenia, przydatna, gdy jedno wywołanie zwrotne obsługuje kilka zdarzeń. |
context | object | Zawiera eventID – wydarzenie, do którego należy to okno zakupu. |
data | object | Szczegóły specyficzne dla zdarzenia. |
Dostępne zdarzenia
| Nazwa | Kiedy jest wywoływane |
|---|---|
checkout.ready | Okno zakupu zostało załadowane i jest gotowe do interakcji. W tym momencie klient przekazuje również clientContext, który przekazano do book(). |
checkout.closed | Okno zakupu zostało zamknięte. Klient usuwa panel lub okno oraz czyści tło. |
checkout.consent | Odwiedzający odpowiedział na informację o warunkach. data.consent ma wartość true, gdy je zaakceptował, a klient zapamiętuje tę odpowiedź, aby następnym razem pominąć ten krok. |
entase.on('checkout.closed', () => {
document.body.classList.remove('checkout-open');
});
entase.on('checkout.consent', payload => {
if (payload.data.consent) console.log('terms accepted');
});Nasłuchiwacze działają po zakończeniu poszczególnych rezerwacji
Nasłuchiwacze należą do instancji, a nie do rezerwacji. Zarejestruj je raz, po utworzeniu klienta, a będą miały zastosowanie do każdego wywołania book(). Użyj payload.context.eventID, aby rozróżniać rezerwacje:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });
entase.on('checkout.closed', payload => {
refreshAvailability(payload.context.eventID);
});Wywołanie destroy() zatrzymuje je wszystkie – instancja całkowicie przestaje nasłuchiwać komunikatów z okna zakupu.
Komunikaty z innych źródeł są ignorowane
Klient akceptuje komunikaty wyłącznie z pochodzenia okna zakupu Entase, więc niepowiązany ruch postMessage na Twojej stronie nigdy nie dotrze do Twoich wywołań zwrotnych.