iFrames
Obsługuj dane aktywności znajdujące się w osadzonych ramkach.
Skrypty obecności w iFrame są obsługiwane jako funkcja opcjonalna. Ustaw iframe na true i podaj iFrameRegExp w metadata.json.
Konfigurowanie obecności iFrame
Dodaj wzorzec URL zagnieżdżonych ramek do metadata.json:
{
"iframe": true,
"iFrameRegExp": "player\\.example\\.com/embed/"
}Utwórz plik iframe.ts obok presence.ts. Będzie uruchamiany w pasujących zagnieżdżonych ramkach:
const iframe = new iFrame()
iframe.on("UpdateData", () => {
const video = document.querySelector("video")
if (!video) return
iframe.send({
video: {
paused: video.paused,
currentTime: video.currentTime,
duration: video.duration,
title: document.querySelector(".video-title")?.textContent,
},
})
})Odbierz dane w presence.ts:
presence.on("iFrameData", (data) => {
iFrameData = data
})iFrameData jest emitowane raz dla każdej wiadomości. Przy wielu ramkach rozpoznaj lub scal ich dane w głównej obecności. iFrameRegExp jest porównywany z URL-em zagnieżdżonej ramki.
Zalecane podejście
Używaj obsługi iframe tylko wtedy, gdy strona główna nie ma dostępu do wymaganego stanu.
Preferuj stabilne selektory DOM, elementy multimediów i publiczny stan strony, zanim dodasz logikę iframe.
Bezpieczeństwo
Unikaj zbierania danych osobowych lub wrażliwych z ramek. Obecność powinna wysyłać tylko informacje o aktywności, które są przydatne dla Discord Rich Presence.