Klient jest dostarczany z CDN Entase jako pojedynczy plik. Nie ma paczki npm, pakietu do zbudowania ani zależności, którą trzeba aktualizować – zawsze otrzymujesz aktualną wersję.
<script src="https://js.entase.com/client.js"></script>Załadowanie skryptu definiuje globalną klasę Entase. Samodzielnie nie robi nic więcej: nie wysyła żądań sieciowych, nie zmienia DOM ani niczego nie renderuje. Wszystko zaczyna się po utworzeniu instancji.
Tworzenie instancji
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });Utwórz jedną instancję na stronę i używaj jej ponownie dla każdego wydarzenia. Konstruktor rejestruje nasłuchiwanie message w obiekcie window i rozpoczyna wykrywanie, z którego trybu finalizacji zakupu może korzystać Twoja domena, więc utworzenie kilku instancji powoduje powielenie nasłuchiwania i wywołań wykrywania bez żadnych korzyści.
Każda opcja ma wartość domyślną, więc new Entase() bez argumentów jest prawidłowe – jednak bez pk klient nie może sprawdzić, czy Twoja domena może korzystać z finalizacji zakupu wbudowanej w stronę, i zawsze przejdzie do wyskakującego okna. Zobacz Tryby finalizacji zakupu.
Asynchroniczne ładowanie skryptu
Jeśli ładujesz client.js z użyciem async lub defer, klasa nie będzie jeszcze istnieć podczas wykonywania skryptu wbudowanego. Po załadowaniu biblioteka wysyła zdarzenie entase:ready w obiekcie window, dlatego poczekaj na nie:
<script src="https://js.entase.com/client.js" async></script>
<script>
let entase = null;
const init = () => { entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' }); };
if (typeof Entase !== 'undefined') init();
else window.addEventListener('entase:ready', init);
</script>Najpierw ważne jest sprawdzenie typeof: jeśli skrypt zakończył już ładowanie, entase:ready zostało już wysłane, a oczekiwanie na nie trwałoby w nieskończoność.
Czyszczenie
W aplikacji jednostronicowej wywołaj destroy(), gdy widok, do którego należy instancja, zostanie odmontowany:
entase.destroy();Spowoduje to usunięcie nasłuchiwania w obiekcie window zarejestrowanego przez klienta. Zniszczonej instancji nie można użyć ponownie – wywołanie na niej book() zapisuje błąd w logu i nic nie robi. Zamiast tego utwórz nową instancję.
Polityka bezpieczeństwa treści
Jeśli Twoja witryna wysyła nagłówek Content-Security-Policy, finalizacja zakupu wymaga:
script-src https://js.entase.com– do załadowania biblioteki.frame-src https://www.entase.com– finalizacja zakupu jest renderowana w elemencie iframe w trybie panelu.connect-src https://www.entase.com– klient wywołuje API Entase, aby określić dozwolony tryb finalizacji zakupu.
Bez frame-src tryb panelu powoduje wyświetlenie pustego panelu. Bez connect-src wykrywanie trybu nie działa, a każda finalizacja zakupu otwiera się jako wyskakujące okno.