Skip to main content

Anleitung zur Widget-Installation

TapToChat lässt sich mit einem einzigen Snippet per Copy-and-paste in jede Website einbinden — ganz ohne Programmierkenntnisse.

Schnellstart

3 einfache Schritte:

  1. 1

    Registrieren und ein Widget anlegen

    Die eindeutige Widget-ID steht im Dashboard bereit

  2. 2

    Den Installationscode kopieren

    Zur Auswahl stehen HTML, React, Next.js und WordPress

  3. 3

    Vor </body> einfügen

    Den Code in die Website einfügen — fertig!

Installationsmethoden

HTML / Statische Websites

Für statische Websites, reines HTML oder jede Seite, in die sich Skripte einfügen lassen.

<!-- TapToChat Widget -->
<script>
  (function(w,d,s,o,f,js,fjs){
    w['TapToChat']=o;w[o] = w[o] || function () { (w[o].q = w[o].q || []).push(arguments) };
    js = d.createElement(s), fjs = d.getElementsByTagName(s)[0];
    js.id = o; js.src = f; js.async = 1; fjs.parentNode.insertBefore(js, fjs);
  }(window, document, 'script', 'taptochat', 'https://cdn.taptochat.io/widget/v1/embed.js'));
  taptochat('init', { widgetId: 'YOUR_WIDGET_ID' });
</script>
<!-- End TapToChat Widget -->

React

Für React-Anwendungen (Create React App, Vite usw.).

// Add to your App.js or main component
import { useEffect } from 'react';

function App() {
  useEffect(() => {
    const config = { widgetId: 'YOUR_WIDGET_ID' };

    // Set the config BEFORE injecting the script: embed.js reads
    // window.TapToChatConfig as soon as it loads, so there is no onload
    // callback to race against.
    window.TapToChatConfig = config;

    if (window.TapToChat) {
      // Already loaded (a remount, or another component mounted it).
      window.TapToChat.init(config);
    } else if (!document.getElementById('taptochat')) {
      // Guarded by id so StrictMode's double-invoked effect cannot inject
      // the script twice.
      const script = document.createElement('script');
      script.src = 'https://cdn.taptochat.io/widget/v1/embed.js';
      script.async = true;
      script.id = 'taptochat';
      document.body.appendChild(script);
    }

    return () => {
      // destroy() removes the widget and detaches its listeners and timers.
      // The <script> stays on the page and cached, so a remount re-initialises
      // immediately via the branch above.
      if (window.TapToChat) window.TapToChat.destroy();
    };
  }, []);

  return <div className="App">{/* Your app */}</div>;
}

Next.js

Für Next.js 13+ mit App Router.

// Create app/components/TapToChatWidget.tsx
'use client'

import { useEffect } from 'react'

declare global {
  interface Window {
    TapToChatConfig?: Record<string, unknown>
    TapToChat?: {
      init: (config?: Record<string, unknown>) => void
      open: () => void
      close: () => void
      toggle: () => void
      isOpen: () => boolean
      destroy: () => void
    }
  }
}

export function TapToChatWidget() {
  useEffect(() => {
    const config = { widgetId: 'YOUR_WIDGET_ID' }

    // Config first: embed.js auto-initialises from window.TapToChatConfig the
    // moment it loads, so nothing has to race an onload handler.
    window.TapToChatConfig = config

    if (window.TapToChat) {
      window.TapToChat.init(config)
    } else if (!document.getElementById('taptochat')) {
      // StrictMode runs this effect twice in development; the id guard keeps
      // the second pass from injecting a duplicate script.
      const script = document.createElement('script')
      script.src = 'https://cdn.taptochat.io/widget/v1/embed.js'
      script.async = true
      script.id = 'taptochat'
      document.body.appendChild(script)
    }

    return () => {
      window.TapToChat?.destroy()
    }
  }, [])

  return null
}

// Then in your app/layout.tsx:
import { TapToChatWidget } from './components/TapToChatWidget'

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        {children}
        <TapToChatWidget />
      </body>
    </html>
  )
}

WordPress

Für WordPress-Seiten. Entweder in functions.php eintragen oder ein Plugin wie „Insert Headers and Footers“ verwenden.

// Add to functions.php
function taptochat_widget() {
  ?>
  <!-- TapToChat Widget -->
  <script>
    (function(w,d,s,o,f,js,fjs){
      w['TapToChat']=o;w[o] = w[o] || function () { (w[o].q = w[o].q || []).push(arguments) };
      js = d.createElement(s), fjs = d.getElementsByTagName(s)[0];
      js.id = o; js.src = f; js.async = 1; fjs.parentNode.insertBefore(js, fjs);
    }(window, document, 'script', 'taptochat', 'https://cdn.taptochat.io/widget/v1/embed.js'));
    taptochat('init', { widgetId: 'YOUR_WIDGET_ID' });
  </script>
  <?php
}
add_action('wp_footer', 'taptochat_widget');

Konfigurationsoptionen

Das Widget lässt sich über zusätzliche Optionen der init-Funktion anpassen:

taptochat('init', {
  widgetId: 'YOUR_WIDGET_ID',  // Required
  position: 'bottom-right',     // Optional; a valid dashboard setting wins (embed.js 1.1.1+)
  color: '#3B82F6'              // Optional; a valid dashboard setting wins (embed.js 1.1.1+)
});
OptionTypBeschreibung
widgetIdstringDie eindeutige Widget-ID (erforderlich)
positionstringErsatzposition des Widgets: 'bottom-right' oder 'bottom-left'. Ab embed.js 1.1.1 zeigt das Widget die im Dashboard gespeicherte Position, sofern sie gültig ist, und verwendet diesen Wert, wenn keine gültige Dashboard-Einstellung verfügbar ist (leer, ungültig oder nicht ladbar), danach den Standardwert. Bei auf 1.0.x oder 1.1.0 fixierten Installationen überschreibt die Dashboard-Einstellung diesen Wert nicht.
colorstringErsatzfarbe der Startschaltfläche als Hexadezimalwert (z. B. '#3B82F6'). Ab embed.js 1.1.1 zeigt das Widget die im Dashboard gespeicherte Farbe, sofern sie gültig ist, und verwendet diesen Wert, wenn keine gültige Dashboard-Einstellung verfügbar ist (leer, ungültig oder nicht ladbar), danach den Standardwert. Bei auf 1.0.x oder 1.1.0 fixierten Installationen überschreibt die Dashboard-Einstellung diesen Wert nicht.

Versionen und feste Versionen

Die Snippets oben laden die neueste 1.x-Version des Widget-Skripts. Korrekturen und Verbesserungen erreichen die Website automatisch, innerhalb von etwa fünf Minuten, und ändern nie etwas an Installation oder Konfiguration.

Verlangt die Sicherheitsrichtlinie ein Skript, das sich nie ändert, lässt sich stattdessen eine exakte Version festschreiben. Die Browser der Besucher prüfen die Datei gegen ihren Integritäts-Hash und verweigern sie bei Abweichung. Korrekturen kommen dann erst mit einem aktualisierten Snippet.

<!-- TapToChat Widget -->
<script>
  (function(w,d,s,o,f,js,fjs){
    w['TapToChat']=o;w[o] = w[o] || function () { (w[o].q = w[o].q || []).push(arguments) };
    js = d.createElement(s), fjs = d.getElementsByTagName(s)[0];
    js.id = o; js.src = f; js.async = 1;
    js.integrity = 'sha384-Hzg8SyhG1oeTZdlxq12ixNKuS1aGiMmxQ3kpToMVROmqA1er0EcPHWPMtzX9Nuv+'; js.crossOrigin = 'anonymous'; fjs.parentNode.insertBefore(js, fjs);
  }(window, document, 'script', 'taptochat', 'https://cdn.taptochat.io/widget/1.1.8/embed.js'));
  taptochat('init', { widgetId: 'YOUR_WIDGET_ID' });
</script>
<!-- End TapToChat Widget -->

Content Security Policy

Sendet die Website einen Content-Security-Policy-Header, https://cdn.taptochat.io in script-src und https://taptochat.io in frame-src erlauben.

Bewährte Vorgehensweisen

Vor </body> platzieren

Das Skript direkt vor dem schließenden body-Tag einfügen — das sorgt für optimale Performance und dafür, dass das DOM bereits geladen ist.

Asynchrones Laden

Das Widget lädt asynchron und blockiert daher weder das Rendering der Seite noch bremst es die Website aus.

Zuerst in der Staging-Umgebung testen

Das Widget vor dem Deployment in die Produktion in einer Entwicklungs- oder Staging-Umgebung testen.

Widget aktiv lassen

In den Dashboard-Einstellungen muss das Widget auf „Aktiv“ stehen, damit es auf der Website erscheint.

Fehlerbehebung

Das Widget erscheint nicht?

  • •Prüfen, ob das Widget im Dashboard auf „Aktiv“ steht
  • •Prüfen, ob die Widget-ID im Code mit der im Dashboard übereinstimmt
  • •Browser-Cache leeren und einen harten Reload auslösen (Ctrl+Shift+R oder Cmd+Shift+R)
  • •Die Browser-Konsole auf JavaScript-Fehler prüfen

Immer noch Probleme?

Das Support-Team ist erreichbar unter hello+support@taptochat.io oder über das Chat-Widget auf dieser Seite.

Bereit für den Start?

Kostenloses Konto anlegen und noch heute Live-Chat zur Website hinzufügen.