Zum Hauptinhalt springen

kaleidr.js, der Loader

kaleidr.js ist das Einstiegsskript für jede Kaleidr-Einbettung. Es definiert das globale window.Kaleidr und das benutzerdefinierte Element <kaleidr-map>. Es ist klein und enthält weder Kartenbibliothek noch Produktcode. Beim Einbinden eines Produkts lädt es dessen Bundle vom selben CDN und übergibt die Optionen.

<script src="https://cdn.kaleidr.com/embed/v1/kaleidr.js"></script>

Es gibt kein npm-Paket. Das SDK wird ausschließlich über ein Skript-Tag geladen. Für React, Next.js, Vue und TypeScript siehe Framework-Integration.

Skript laden​

FrageAntwort
Wohin gehört das Tag?Überall. <kaleidr-map>-Elemente werden eingebunden, unabhängig davon, ob sie vor oder nach dem Tag stehen.
Wann darf ich Kaleidr.mount aufrufen?Nach der Ausführung des Skripts. Bei einem normalen <script src>-Tag kann jedes folgende Skript es aufrufen.
Darf ich async oder defer verwenden?Für Elemente ja. Bei Kaleidr.mount auf das load-Ereignis des Tags warten, da window.Kaleidr vorher noch nicht existiert.
Wie oft?Einmal pro Seite.
Darf ich integrity hinzufügen?Nein. Die Datei wird am selben Pfad aktualisiert; ein fester Hash wäre beim nächsten Release ungültig. Siehe CDN-Versionierung.
Läuft es auf dem Server?Nein. Es benötigt window und document. In serverseitig gerenderten Apps nur im Browser laden.

Skript mit async laden und nach dem Laden einbinden:

<div id="map" style="height:480px"></div>
<script>
const s = document.createElement('script');
s.src = 'https://cdn.kaleidr.com/embed/v1/kaleidr.js';
s.async = true;
s.onload = () => {
Kaleidr.mount('#map', { product: 'viewer', shareId: 'YOUR_MAP_ID' });
};
document.head.appendChild(s);
</script>

window.Kaleidr​

MitgliedBeschreibung
Kaleidr.mount(target, options)Bindet ein Produkt in ein Element ein und liefert ein Handle zurück.
Kaleidr.init()Initialisiert vorhandene <kaleidr-map>-Elemente im Dokument. Selten nötig.
Kaleidr.enable(on)Aktiviert oder deaktiviert nachfolgende Einbindungen.
Kaleidr.versionDiagnose-Versionszeichenfolge des Loaders.

Kaleidr.mount(target, options)​

const handle = Kaleidr.mount('#chat', {
product: 'chat',
publishableKey: 'kld_pk_live_…',
map: myMap,
contained: true,
});
ParameterTypBeschreibung
targetCSS-Selektor oder HTMLElementZielelement. Ein Selektor wird einmalig mit document.querySelector aufgelöst.
optionsObjektErforderlich. Siehe Optionen.

Gibt ein Handle zurück.

Verhalten:

  • Sofortige Rückgabe. Sitzungsaustausch und Bundle-Laden erfolgen im Hintergrund. Zwischenzeitliche Handle-Aufrufe werden in Reihenfolge gespeichert und bei Bereitschaft angewendet. Bei Viewer und Tile ist das der Moment, in dem die Karte im iframe ihre Bereitschaft meldet: setCamera direkt nach mount wirkt also.
  • Fehlgeschlagene Einbindungen werfen keine Ausnahme. Fehlendes Ziel, nicht geladenes Bundle, abgelehnte Sitzung oder ungültige ID erzeugen einen Konsolenfehler mit [kaleidr:<product>]. Das zurückgegebene Handle bleibt funktionslos. Einzige Ausnahme: Kaleidr.mount('#map') ohne Optionsobjekt wirft einen TypeError.
  • Keine Rückmeldung an Ihren Code. Es gibt weder ein Promise noch einen Callback. Siehe Erfolg einer Einbindung erkennen.
  • Eine Einbindung pro Ziel. Vor einer erneuten Einbindung zunächst handle.destroy() am bisherigen Handle aufrufen. Auch während des Ladens ist Zerstören und Neueinbinden im selben Element sicher; das alte Mount beeinflusst das neue nicht.

Optionen​

OptionTypStandardProdukteBeschreibung
product'chat' | 'viewer' | 'editor' | 'tile'keiner; erforderlichalleEinzubindendes Produkt.
publishableKeyZeichenfolgekeinerchat, editor, tileVeröffentlichbarer Schlüssel kld_pk_…. Das SDK tauscht ihn gegen eine kurzlebige Sitzung und übergibt nur diese. Nicht an Viewer übergeben. Ein Serverschlüssel (kld_sk_…) wird vor der Anfrage abgelehnt.
shareIdZeichenfolgekeinerviewer, chatViewer: ID der veröffentlichten Karte. Chat ohne Schlüssel: veröffentlichte Karte, deren Eigentümer die Chat-Nutzung ermöglicht.
mapIdZeichenfolgekeinerviewerAlias für shareId, falls shareId fehlt.
styleIdZeichenfolgeStandard-Basiskarte der Organisationtile, editorStil-ID wie kaleidr-morning oder vollständige Stil-URL.
maplaufende KarteninstanzkeinerchatKarte, die der Assistent steuert: Mapbox GL JS, MapLibre GL JS, Google Maps oder Leaflet. Siehe Unterstützte Karten. Für reinen Chat weglassen.
mapTargetCSS-SelektorkeinerchatViewer- oder Tile-Element <kaleidr-map>, das der Assistent statt map steuert.
containedBooleanfalsechatFixiert das Panel innerhalb des positionierten und bemessenen Zielelements. Standardmäßig schwebt es oben links im Ansichtsfenster.
langZeichenfolgegültiges <html lang> der Seite, sonst EnglischchatAntwortsprache als BCP-47-Tag wie en, ko oder pt-BR. Siehe Chat-Sprache.
titleZeichenfolgeeigener PaneltitelchatÜberschrift des Panels; Attribut am Element ist chat-title.
placeholderZeichenfolgeeigener Platzhalter des PanelschatPlatzhalter des Eingabefelds.
center[longitude, latitude]Produktstandardviewer, tile, editorAnfangsmittelpunkt.
zoomZahlProduktstandardviewer, tile, editorAnfangszoom; bei Viewer und Tile nur zusammen mit center.
pitchZahlProduktstandardviewer, tile, editorAnfangsneigung in Grad.
bearingZahlProduktstandardviewer, tile, editorAnfangsdrehung in Grad.
themeObjekt oder JSON-Objektzeichenfolgekeinerchat, editorChat: benutzerdefinierte CSS-Eigenschaften, z. B. { '--highlight-color': '#0b5fff' }. Editor: 17 Theme-Schlüssel. Ungültige JSON-Zeichenfolgen werden mit Warnung ignoriert.
enabledBooleankeineralleSteuerung der Aktivierungssperre pro Einbindung. Nur beim Einbinden gelesen.
baseURLhttps://cdn.kaleidr.comalleUrsprung für Produkt-Bundles. Nur der Ursprung zählt; Bundles werden dort unter /embed/v1/ geladen. Akzeptiert werden nur die bei Base-Überschreibung genannten Ursprünge; sonst Warnung und Ignorieren.
viewerBaseURLhttps://map-embed.kaleidr.comviewer, tileUrsprung des iframe; nur dieser wird verwendet.
apiBaseURLhttps://api.kaleidr.com/inference-apichat, editor, tileZiel des Sitzungsaustauschs und der Produktanfragen. Muss /inference-api enthalten; ein reiner Ursprung ergibt 404.
tileBaseURLhttps://tile.kaleidr.comeditorHost zum Auflösen der Stil-IDs.

Hinweise:

  • apiKey ist ein veralteter Alias für publishableKey.
  • Die vier …Base-Optionen dienen Tests anderer Deployments und sind in Produktion unnötig. base verlagert nur Bundles; Kartenseite, API und Basiskartenhost bleiben bei Kaleidr, sofern nicht separat geändert.
  • lang, title und placeholder werden beim Einbinden gelesen. Für Änderungen zerstören und erneut einbinden.
  • Nicht verwendete Produktoptionen werden ohne Hinweis ignoriert.

Base-Überschreibung​

base (Option und Attribut) sowie die Seitenvariable window.__KALEIDR_EMBED_BASE__ legen den Ursprung der Bundles fest. Eine Überschreibung wird ausschließlich für folgende Ursprünge berücksichtigt:

Zulässiger UrsprungBeispiel
Kaleidr-CDNhttps://cdn.kaleidr.com
Ursprung, von dem kaleidr.js geladen wurdekaleidr.js kommt von https://static.example.com, und base ist https://static.example.com.
Ursprung der Seite selbstDie Seite liegt unter https://www.example.com/…, und base ist https://www.example.com.

Andere Werte werden ignoriert. Das Produkt wird trotzdem eingebunden, Bundles kommen vom Standard-CDN und die Konsole zeigt eine Warnung:

[kaleidr] base "https://other.example.net" is IGNORED — bundles load from https://cdn.kaleidr.com. A base must be the Kaleidr CDN, the origin kaleidr.js was loaded from, or this page's own origin.

Die Seitenvariable muss eine Zeichenfolge sein; andere Typen werden stillschweigend übersprungen. Self-Hosting funktioniert nach dieser Regel, wenn Loader und Bundles denselben Ursprung haben.

Standard-Kameraeinstellungen der Produkte:

ProduktStandardkamera
viewerVom Kartenautor gespeicherte Ansicht.
tileStil-Standardansicht, sonst die ganze Welt.
editorMittelpunkt [0, 0], Zoom 2, Neigung 0, Drehung 0.
chatNicht zutreffend: Chat erstellt keine Karte.

Details stehen in den Produktreferenzen: Chat, Viewer, Tile, Editor.

Das Handle​

Kaleidr.mount gibt für alle Produkte dieselbe Handle-Struktur zurück.

interface KaleidrHandle {
readonly product: 'chat' | 'viewer' | 'editor' | 'tile';
setCamera(camera: {
center?: [number, number]; // [longitude, latitude]
zoom?: number;
pitch?: number;
bearing?: number;
duration?: number; // milliseconds
}): void;
setTheme(theme: string | Record<string, string>): void;
setStyle(style: string): void;
destroy(): void;
}

Jede Methode existiert auf jedem Handle. Ob sie wirkt, hängt vom Produkt ab:

Methodechatviewereditortile
setCamera(camera)Warnungjajaja
setTheme(theme)jaWarnungWarnungWarnung
setStyle(style)WarnungWarnungWarnungja
destroy()jajajaja

„Warnung“ heißt: Der Aufruf bewirkt nichts und die Konsole meldet es.

[kaleidr] setCamera() is not supported on product "chat" — the call is a no-op. See the handle matrix at https://docs.kaleidr.com/sdk/kaleidr-map-element#handle-matrix.

Dies gehört zum Vertrag /embed/v1: Nicht unterstützte Methoden werfen nie eine Ausnahme.

Hinweise zu Methoden:

  • setCamera: Nicht angegebene Felder behalten ihren Wert. duration animiert die Bewegung; fehlt es oder ist 0, springt die Karte sofort. In Chat nicht unterstützt, da Chat keine Karte besitzt. setCamera ist bei Chat nicht verfügbar; der Assistent bewegt die angehängte Karte dennoch beim Antworten; für eigene Bewegungen die API Ihrer Kartenbibliothek verwenden.
  • setTheme: nur Chat. Nimmt CSS-Eigenschaften als Objekt oder JSON-Objektzeichenfolge an.
  • setStyle: nur Tile. Akzeptiert Stil-ID oder Stil-URL.
  • destroy: entfernt die Einbindung, stoppt Sitzungserneuerungen und verwirft wartende Aufrufe. Mehrfache Aufrufe sind harmlos. Ein zerstörtes Handle ist nicht wiederverwendbar; erneut einbinden.

Handle-Methoden lassen sich unmittelbar nach mount aufrufen. Bei Viewer und Tile werden frühe setCamera-Aufrufe (bei Tile auch setStyle) in Reihenfolge gespeichert, bis die Karte im iframe mit kaleidr-embed:ready oder einer ersten Kameraposition Bereitschaft meldet. Die letzten 256 Aufrufe bleiben erhalten. Kommt innerhalb einer begrenzten Frist, normalerweise 10 Sekunden ab Frame-Laden, keine Bereitschaftsmeldung, werden sie trotzdem gesendet und eine Warnung ausgegeben:

[kaleidr] the map frame has not reported ready — calls held for it are sent now, and may reach no map. The frame may be showing an error (an unpublished map, a blocked request).

Die Wartezeit beginnt erst beim Laden des Frames. Ein noch nicht geladenes Frame unterhalb des sichtbaren Bereichs behält seine Aufrufe. Man muss kaleidr-embed:ready nicht abwarten. Diese Meldung und kaleidr-embed:error zeigen weiterhin Erfolg oder Fehler an: siehe Viewer-Meldungen.

Das Handle bietet weder ready-Promise noch on()-Methode oder map-/iframe-Mitglied.

Kaleidr.init()​

Initialisiert alle derzeit im Dokument vorhandenen <kaleidr-map>-Elemente. Der Loader ruft dies selbst auf; später eingefügte Elemente starten automatisch. Daher selten nötig. Wiederholte Aufrufe sind harmlos.

Aktivierungssperre​

Einbettungen sind standardmäßig aktiv. Bei deaktivierter Sperre lädt und sendet Kaleidr.mount nichts und gibt ein funktionsloses Handle zurück. So kann man vor Zustimmung von Besuchern warten oder Einbettungen deaktivieren, ohne HTML zu entfernen.

Die drei Schalter​

SchalterGeltungsbereichFestlegen mit
SeitenflagAlle Einbindungen auf der Seitewindow.__KALEIDR_EMBED_ENABLED__ = false, vor den zurückzuhaltenden Einbindungen setzen
Kaleidr.enable()Alle nachfolgenden EinbindungenKaleidr.enable(false)
Pro EinbindungEine EinbindungOption enabled: false oder Attribut flag="false"

Entscheidung beim Einbinden​

Bei jeder Einbindung liest das SDK alle drei Schalter:

  1. Ist irgendein Schalter ausdrücklich false, wird die Einbindung zurückgehalten.
  2. Sonst startet sie, wenn mindestens einer ausdrücklich true ist.
  3. Andernfalls gilt der aktivierte Standard.

Daraus folgen drei wichtige Regeln:

  • Ein false kann nur durch denselben Schalter aufgehoben werden. Kaleidr.enable(true) hebt weder ein enabled: false noch ein Seitenflag mit false auf. Schalter überstimmen sich nicht gegenseitig.
  • Die Prüfung erfolgt nur beim Einbinden. Eine Freigabe startet zuvor zurückgehaltene Einbindungen nicht automatisch, und ein späteres Deaktivieren entfernt laufende Einbindungen nicht. Danach erneut Kaleidr.mount aufrufen oder das Element entfernen und wieder einsetzen.
  • Das Seitenflag wird bei jeder Einbindung neu gelesen, nicht nur beim Laden des Skripts. Spätere Änderungen betreffen die nächste Einbindung.
Zurückhaltung durchSo freigeben
window.__KALEIDR_EMBED_ENABLED__ = falseAuf true setzen oder löschen.
Kaleidr.enable(false)Kaleidr.enable(true) aufrufen, oder mit Kaleidr.enable(null) auf Standard zurücksetzen.
enabled: false oder flag="false"Ohne diese Einstellung erneut einbinden. Änderung von flag am eingebundenen Element wirkt nicht.

Bei zurückgehaltener Einbindung benennt eine Konsolenwarnung den verantwortlichen Schalter:

[kaleidr] embed is disabled — window.__KALEIDR_EMBED_ENABLED__ is false. Reassigning it releases that lever — Kaleidr.enable() cannot.

Zulässige Werte​

Die Schalter prüfen Boolean-Werte streng, damit eine zufällige Zeichenfolge Einbettungen nicht versehentlich aktiviert.

SchalterGilt als trueGilt als falseMit Warnung ignoriert
window.__KALEIDR_EMBED_ENABLED__truefalseAlles außer echten Boolean-Werten, auch die Zeichenfolgen "true" und "false"
Kaleidr.enable(x)kein Argument, true, "true", "1", "yes", "on"false, 0, "", "false", "0", "no", "off"Andere Zeichenfolgen, undefined, Objekte, Funktionen
Option enabledtrue, "true", "1", "yes", "on"false, 0, "", "false", "0", "no", "off"Andere Zeichenfolgen, Objekte, Funktionen
Attribut flagflag ohne Wert, "true", "1", "yes", "on""false", "0", "no", "off"Alle anderen Werte

Groß-/Kleinschreibung und äußere Leerzeichen spielen keine Rolle. Bei gespeicherten Werten sind zwei Details wichtig:

  • Kaleidr.enable(null) setzt den Schalter auf Standard zurück; es bedeutet nicht „keine Vorgabe“. localStorage.getItem(key) liefert null, wenn nichts gespeichert wurde – auch vor einer Zustimmung. Gespeicherte Werte daher niemals direkt weitergeben, sondern prüfen: Kaleidr.enable(stored === 'true').
  • Ein ignorierter Wert ändert den bisherigen Schalterzustand nicht, aktiviert und deaktiviert also nichts.

Beispiel: Einbettungen bis zur Zustimmung zurückhalten​

Diese Seite hält alle Einbettungen über das Seitenflag zurück, weil Elemente starten, sobald der Loader läuft. Bei Zustimmung wird derselbe Schalter freigegeben und die Elemente werden erneut eingesetzt, damit sie starten.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Consent-gated map</title>
<script>
// A real boolean, set before the loader. A stored string is compared, never passed through.
window.__KALEIDR_EMBED_ENABLED__ =
localStorage.getItem('embeds-consent') === 'true';
</script>
<script src="https://cdn.kaleidr.com/embed/v1/kaleidr.js"></script>
</head>
<body>
<div id="banner">
This page shows an interactive map from Kaleidr.
<button id="accept">Show the map</button>
</div>

<kaleidr-map product="viewer" share-id="YOUR_MAP_ID"
style="display:block; height:480px"></kaleidr-map>

<script>
const banner = document.getElementById('banner');
if (window.__KALEIDR_EMBED_ENABLED__) banner.hidden = true;

document.getElementById('accept').addEventListener('click', () => {
localStorage.setItem('embeds-consent', 'true');
banner.hidden = true;

// 1. Release the lever that held the embeds.
window.__KALEIDR_EMBED_ENABLED__ = true;

// 2. A held element does not mount by itself. Re-insert each one.
document.querySelectorAll('kaleidr-map').forEach((el) => {
const parent = el.parentNode;
const next = el.nextSibling;
el.remove();
parent.insertBefore(el, next);
});
});
</script>
</body>
</html>

Vor der Zustimmung zeigt der Netzwerk-Tab nur kaleidr.js, aber weder Produkt-Bundle noch Sitzungsanfrage oder iframe von Kaleidr.

Bei Einbindung aus JavaScript brauchen Sie die Sperre nicht: Kaleidr.mount einfach erst nach Zustimmung aufrufen. Für HTML-Elemente, Tag-Manager oder fremden Code, der mount selbst aufruft, ermöglicht die Sperre einen zentralen Schalter:

Kaleidr.enable(false); // hold every later mount
// …
Kaleidr.enable(true); // release it
const handle = Kaleidr.mount('#map', { product: 'viewer', shareId: 'YOUR_MAP_ID' });

Globale Seitenvariablen​

GlobalTypGelesenZweck
window.__KALEIDR_EMBED_ENABLED__BooleanBei jeder EinbindungSeitenflag der Aktivierungssperre.
window.__KALEIDR_EMBED_BASE__URL-ZeichenfolgeBei jeder EinbindungBundle-Ursprung beim Self-Hosting. Nur der Ursprung wird genutzt und muss von der Base-Überschreibung zugelassen sein. Siehe CDN-Versionierung.

Erfolg einer Einbindung erkennen​

Das SDK bietet Ihrem Code kein Signal für Erfolg oder Fehlschlag. Verfügbar sind:

ProduktGeladenFehlgeschlagen
vieweriframe sendet kaleidr-embed:ready.iframe sendet kaleidr-embed:error oder Konsole meldet [kaleidr:viewer].
tileiframe sendet kaleidr-embed:ready.Abgelehnte Sitzung nur in der Konsole; Zeichenfehler sendet kaleidr-embed:error.
chatKein Signal, Panel erscheint auf der Seite.Nur Konsole.
editorKein Signal, Editor erscheint auf der Seite.Nur Konsole.

Beide Meldungen sind unter Viewer-Meldungen dokumentiert.

Wenn eine Einbindung fehlschlägt​

UrsacheSichtbares ErgebnisAnfrage gesendet?
Selektor findet kein Ziel[kaleidr:<product>] mount target not found: <selector>Nein
Element hat kein gültiges product[kaleidr] <kaleidr-map> requires product="chat|viewer|editor|tile"Nein
Serverschlüssel wurde übergeben[kaleidr:<product>] Kaleidr: a server key (kld_sk_…) must never be used in the browser — it is a standing secret. Use your publishable key (kld_pk_…) here and keep the server key server-side.Nein
Unbekannter/widerrufener Schlüssel oder unzulässiger UrsprungBrowser-CORS-Fehler für sessions, danach [kaleidr:<product>]-Abruffehler; nichts wird angezeigt.Ja
Fehlender Scope, Produktsperre oder unzureichender Tarif[kaleidr:<product>] kaleidr session exchange failed (403). Nichts wird angezeigt.Ja
Kartenlade-Kontingent verbraucht (tile) oder zu viele Sitzungsanfragen[kaleidr:<product>] kaleidr session exchange failed (429). Nichts wird angezeigt.Ja
Produkt-Bundle lädt nicht[kaleidr:<product>] [kaleidr] failed to load https://cdn.kaleidr.com/embed/v1/<product>.jsn. z.
Viewer ohne/mit ungültiger ID[kaleidr:viewer] Kaleidr map: invalid id "" — must match ^[A-Za-z0-9._~-]{1,100}$.Nein
Editor ohne Schlüssel[kaleidr:editor] [editor-embed] attach() requires an { apiKey }Nein
Chat ohne Schlüssel und shareIdPanel erscheint, aber alle Fragen schlagen fehl.Nicht beim Einbinden
Aktivierungssperre ist aus[kaleidr] embed is disabled — …Nein

Das SDK zeigt nie den Servergrund. Bei abgelehnter Sitzung wird nur der HTTP-Status protokolliert. Der Grund steht im Antwortkörper: Bei 403/404 im Feld detail, etwa {"detail":"insufficient_scope"}. Bei 429 im Feld error, mit erläuterndem Satz in detail; map_load_quota_exceeded steht ausnahmsweise in detail. Im Netzwerk-Tab die Anfrage sessions und ihre Antwort prüfen. Verbirgt CORS den Inhalt, die Anfrage im Terminal wiederholen:

curl -i https://api.kaleidr.com/inference-api/b2b/v1/sdk/sessions \
-H "x-api-key: kld_pk_live_…" \
-H "Origin: https://www.example.com" \
-H "content-type: application/json" \
-d '{"product":"chat"}'
HTTP/2 403
content-type: application/json

{"detail":"origin_not_allowed"}

Den Ursprung der betroffenen Seite verwenden. Beim Testen "chat", "editor" oder "viewer" angeben: Eine erfolgreiche "tile"-Anfrage zählt einen Kartenaufruf. Sämtliche Codes stehen unter Fehler.

Ein fehlgeschlagener erster Sitzungsaustausch wird für diese Einbindung nicht erneut versucht. Ursache beheben und neu einbinden.

Sitzungsaustausch im Überblick​

Für Chat, Editor und Tile verwendet das SDK den veröffentlichbaren Schlüssel nie direkt bei der Laufzeit-API; er wird zuerst gegen eine Sitzung getauscht.

  1. Beim Einbinden sendet das SDK POST https://api.kaleidr.com/inference-api/b2b/v1/sdk/sessions mit Header x-api-key: <your publishable key> und Körper {"product":"<product>"}. Der Browser ergänzt Origin.
  2. Kaleidr prüft der Reihe nach: veröffentlichbarer Schlüssel, vorhandener Ursprung, ggf. zulässiger Ursprung, Produktzulassung für Schlüssel und Tarif sowie nötiger Scope: ai für Chat, design für Editor, maps für Tile, keiner für Viewer.
  3. Die Antwort lautet {"session_token": "…", "expires_in": 900, "product": "…", "basemap_style_id": …}. basemap_style_id bezeichnet die Organisations-Standardbasiskarte oder null.
  4. Das Produkt verwendet das auf Ursprung und Produkt beschränkte Sitzungstoken für Anfragen.
  5. Das SDK erneuert 90 Sekunden vor Ablauf und nach Rückkehr eines Hintergrund-Tabs mit fast abgelaufener Sitzung. Bei Fehlschlag wird alle 30 Sekunden erneut versucht, solange die Einbindung besteht.
  6. handle.destroy() beendet die Erneuerungen.

Viewer braucht keine Sitzung. Chat mit shareId ohne Schlüssel bezieht sie von der veröffentlichten Karte. Siehe Chat auf veröffentlichter Karte.

Anfrage und Antwort stehen unter Endpunkte. Schlüsselarten, Sitzungen und die Grenzen der Herkunfts-Whitelist erläutert das Sicherheitsmodell.

Weitere Konsolenmeldungen​

MeldungBedeutung
[kaleidr] <method>() is not supported on product "<product>" — the call is a no-op. …Sie haben eine für dieses Produkt nicht unterstützte Handle-Methode aufgerufen.
[kaleidr] <method>() IS supported on product "<product>", but this mount did not expose it, so the call did nothing. …Das zwischengespeicherte Produkt-Bundle ist älter als der Loader; ohne Cache neu laden.
[kaleidr] the map frame has not reported ready — calls held for it are sent now, and may reach no map. …Viewer/Tile meldete sich nicht rechtzeitig bereit; gespeicherte setCamera-/setStyle-Aufrufe wurden trotzdem gesendet. Siehe Handle; ggf. kaleidr-embed:error beachten.
[kaleidr] theme must be an object of CSS tokens, not an array; ignored.theme war ein Array.
[kaleidr] theme string must be JSON …; named string themes are not supported. Ignored.theme war eine Zeichenfolge ohne einleitendes {.
[kaleidr] theme JSON parse failed (…); ignored.theme enthielt fehlerhaftes JSON.
[kaleidr] <attribute>="<value>" is not a recognized boolean — the attribute is IGNORED. …flag oder contained hatte einen ungültigen Wert. Die Meldung nennt flag="…" bzw. contained="…".
[kaleidr] base "<value>" is IGNORED — bundles load from <origin>. …base oder window.__KALEIDR_EMBED_BASE__ nannte einen unzulässigen Ursprung gemäß Base-Überschreibung; das Standard-CDN wird genutzt.
[kaleidr] window.__KALEIDR_EMBED_ENABLED__ must be a boolean; got <type> (…). …Seitenflag hatte keinen echten Boolean-Wert und wurde ignoriert.
[kaleidr] Kaleidr.enable(): "<value>" is not a recognized boolean — the value is IGNORED. …Kaleidr.enable bekam einen ungültigen Wert.
[kaleidr] enabled: "<value>" is not a recognized boolean — the value is IGNORED. …Die Option enabled bekam einen ungültigen Wert.
[kaleidr] Kaleidr.enable(undefined) is IGNORED and leaves the gate exactly as it was. …Kaleidr.enable wurde mit undefined aufgerufen.
[kaleidr] Kaleidr.enable(null) RESET the gate to the build default, releasing the <value> set earlier. …Kaleidr.enable(null) hob eine frühere Schalter-Einstellung auf.

Nicht verfügbar​

  • npm-Paket, ES-Modul-Build oder mitgelieferte Typdefinitionen. Kopierbare Deklaration in Framework-Integration.
  • Natives SDK für iOS, Android, React Native oder Flutter.
  • ready-Promise, Ereignisse oder Callbacks am Handle.
  • JavaScript-Client für API-Aufrufe ohne Einbindung: Stattdessen die Server-API im Backend verwenden.

Verwandte Seiten​