iFrames
Gérez les données d'activité qui se trouvent dans des cadres intégrés.
Les scripts de présence dans les iFrames sont disponibles en option. Définissez iframe à true et fournissez iFrameRegExp dans metadata.json.
Configurer une présence iFrame
Ajoutez le motif d'URL des cadres imbriqués dans metadata.json :
{
"iframe": true,
"iFrameRegExp": "player\\.example\\.com/embed/"
}Créez un fichier iframe.ts à côté de presence.ts. Il s'exécute dans les cadres imbriqués correspondants :
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,
},
})
})Recevez les données dans presence.ts :
presence.on("iFrameData", (data) => {
// Fusionnez ou remplacez les données du cadre correspondant.
iFrameData = data
})iFrameData est émis pour chaque message. Si plusieurs cadres sont présents, identifiez ou fusionnez leurs données dans la présence principale. iFrameRegExp est comparé à l'URL du cadre imbriqué.
Approche recommandée
Utilisez la gestion des iframes uniquement lorsque la page principale ne peut pas accéder à l'état requis.
Préférez les sélecteurs DOM stables, les éléments multimédias et l'état public de la page avant d'ajouter de la logique iframe.
Sécurité
Évitez de collecter des données personnelles ou sensibles depuis les cadres. Une présence ne doit envoyer que des informations d'activité utiles pour Discord Rich Presence.