iFrames
埋め込みフレーム内にあるアクティビティデータを扱います。
iFrameプレゼンススクリプトは、Nowly拡張機能のランタイムではまだ実装されていません。presence.on("iFrameData") はSDKの型で予約されていますが、拡張機能はネストされたフレームに注入せず、このイベントも発行しません。この機能が提供されるまでは、トップレベルのページ(DOM、<audio> / <video>、公開されているページの状態)を読み取るようにしてください。
iFrameが重要になる場面
一部のウェブサイトでは、メディアプレイヤーや重要な状態をiframe内に描画します。通常のプレゼンススクリプトでは、トップレベルのページからすべてを読み取れない場合があります。
iframeサポートが実装されるまでは、クロスオリジンのフレーム内にしかアクティビティがないサイトはスキップするか、プレゼンスの説明にその制限を記載してください。
予定されているAPI
Presence APIは、将来のフレームレベル通信のために iFrameData イベントを予約しています:
presence.on("iFrameData", async (...args) => {
presence.info("Received iframe data")
})現在の本番プレゼンスでは、このリスナーに依存しないでください。
推奨されるアプローチ
iframe処理は、メインページが必要な状態にアクセスできない場合にのみ使用してください。
iframeのロジックを追加する前に、安定したDOMセレクタ、メディア要素、公開されているページの状態を優先してください。
安全性
フレームから個人情報や機密データを収集することは避けてください。プレゼンスは、Discord Rich Presenceにとって有用なアクティビティ情報のみを送信する必要があります。