
Widget osadzany jest gościem na cudzej stronie. Nie kontroluje resetu CSS, frameworka JavaScript, banera cookies, routera ani budżetu wydajności. Dlatego loader po stronie hosta pozostaje mały. Ma dodać wejście do czatu i nie przeszkadzać reszcie strony.
Na stronie hosta zostaje tylko przycisk
Loader tworzy przycisk, dodaje minimalne style, pobiera konfigurację i otwiera iframe z UI czatu. Interfejs rozmowy zostaje w iframe. Dzięki temu renderowanie wiadomości, formularze, uploady, wyszukiwarka, reakcje i logika realtime nie mieszają się z DOM-em klienta. Bez tej granicy każda strona klienta staje się osobnym błędem integracji.
Podwójne instalacje się zdarzają
Prawdziwe strony bywają chaotyczne. Skrypt może być dodany bezpośrednio i drugi raz przez tag manager. Test marketingowy może załadować go dwa razy. Aplikacja SPA może ponownie uruchomić blok integracji po zmianie trasy. Convor wystawia singleton API i ścieżkę sprzątania, żeby druga inicjalizacja nie tworzyła drugiego widgetu walczącego o ten sam róg strony.
Pola brandingu nadal trzeba walidować
Widget przyjmuje ustawienia takie jak kolor główny, promień zaokrąglenia, pozycja i styl dymka. Wartości, które stają się CSS-em, są najpierw sprawdzane. Jeśli wartość jest błędna, loader wraca do bezpiecznego domyślnego ustawienia. To mały fragment kodu, ale ważny. Ustawienie w panelu ma stylować widget, a nie zyskiwać możliwość wstrzyknięcia dowolnego CSS-u do strony klienta.
postMessage to protokół
Strona hosta i iframe rozmawiają przez postMessage. Używają go do zamknięcia widgetu, liczników nieprzeczytanych wiadomości, proaktywnych komunikatów i zmian strony. Odbiorca sprawdza origin oraz źródło wiadomości, zanim zareaguje. To szczególnie ważne przy śledzeniu tras: iframe potrzebuje URL-a hosta, ale przypadkowe ramki na stronie nie powinny móc go podrobić.
Najlepszy loader jest mało widowiskowy. Pojawia się, otwiera, łączy ponownie, sprząta po sobie i nie zmusza właściciela strony, żeby o nim znowu myślał.
Nowe wpisy na Twoją skrzynkę
Bez spamu. Wypisz się w dowolnej chwili.
