Το checkout αναφέρει στη σελίδα σας τι κάνει. Εγγραφείτε με το on():
entase.on('checkout.ready', payload => {
console.log('checkout open for', payload.context.eventID);
});Ένας ακροατής ανά όνομα συμβάντος
Το on() αποθηκεύει ένα callback ανά όνομα συμβάντος. Η καταχώριση δεύτερου callback για το ίδιο όνομα αντικαθιστά το πρώτο – δεν προστίθεται σε αυτό:
entase.on('checkout.closed', a);
entase.on('checkout.closed', b); // a is gone; only b runsΤο off() καταργεί ό,τι έχει καταχωριστεί για ένα όνομα. Αγνοεί οποιοδήποτε callback τού περάσετε, επομένως τα off('checkout.closed', b) και off('checkout.closed') κάνουν το ίδιο.
Αν πολλά μέρη της σελίδας σας πρέπει να αντιδρούν στο ίδιο συμβάν, καταχωρίστε ένα callback και διανείμετε την ενέργεια από μέσα του.
Εγγραφή σε πολλά συμβάντα ταυτόχρονα
Και οι δύο μέθοδοι δέχονται μια συμβολοσειρά με ονόματα χωρισμένα με κενά ή έναν πίνακα ονομάτων, καταχωρίζοντας το ίδιο callback για κάθε όνομα:
entase.on('checkout.ready checkout.closed', payload => {
console.log(payload.name);
});
entase.off(['checkout.ready', 'checkout.closed']);Το payload
Κάθε callback λαμβάνει ένα αντικείμενο:
| Πεδίο | Τύπος | Περιγραφή |
|---|---|---|
name | string | Το όνομα του συμβάντος, χρήσιμο όταν ένα callback χειρίζεται περισσότερα από ένα. |
context | object | Περιέχει το eventID – το συμβάν στο οποίο ανήκει αυτό το checkout. |
data | object | Λεπτομέρειες ειδικές για το συμβάν. |
Διαθέσιμα συμβάντα
| Όνομα | Πότε ενεργοποιείται |
|---|---|
checkout.ready | Το checkout έχει φορτωθεί και είναι έτοιμο για αλληλεπίδραση. Τότε είναι επίσης που ο client παραδίδει το clientContext που περάσατε στο book(). |
checkout.closed | Το checkout έχει κλείσει. Ο client καταργεί το πλαίσιο ή το παράθυρο και εκκαθαρίζει το φόντο. |
checkout.consent | Ο επισκέπτης απάντησε στην ειδοποίηση όρων. Το data.consent είναι true όταν αποδέχτηκε και ο client το θυμάται, ώστε το βήμα να παραλείπεται την επόμενη φορά. |
entase.on('checkout.closed', () => {
document.body.classList.remove('checkout-open');
});
entase.on('checkout.consent', payload => {
if (payload.data.consent) console.log('terms accepted');
});Οι ακροατές διατηρούνται μεταξύ μεμονωμένων κρατήσεων
Οι ακροατές ανήκουν στο instance, όχι σε μια κράτηση. Καταχωρίστε τους μία φορά, μετά τη δημιουργία του client, και εφαρμόζονται σε κάθε κλήση του book(). Χρησιμοποιήστε το payload.context.eventID για να ξεχωρίζετε τις κρατήσεις:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });
entase.on('checkout.closed', payload => {
refreshAvailability(payload.context.eventID);
});Η κλήση του destroy() σταματά όλους τους ακροατές – το instance σταματά εντελώς να ακούει μηνύματα από το checkout.
Τα μηνύματα από άλλες πηγές αγνοούνται
Ο client δέχεται μόνο μηνύματα από την προέλευση του Entase checkout, επομένως άσχετη κίνηση postMessage στη σελίδα σας δεν θα φτάσει ποτέ στα callback σας.