書式設定のドキュメント を確認していたところ、customRowAction
に関する内容が追加されていました。action
プロパティに、新たに embed を設定できるようになったようです。
この embed を利用すると、次のように外部サイトを埋め込み表示できるようです。
この embed を試しに触ってみたところ、次の4つの注意事項がありそうでした。
⚠ 注意事項1:Newer version of the Microsoft Lists App でしか利用できない
ドキュメントに「Note - This action is only available in the newer version of the Microsoft Lists App.」との記載がありました。
試してみると、確かに Microsoft Lists でリストを開いたときは埋め込み表示されましたが、SharePoint でリストを開いたときは埋め込み表示されませんでした。
また、「newer version」とはどのような状態を指すのか不明でしたが、Forms 機能 が利用できるテナントでは埋め込み表示され、Forms 機能 が利用できないテナントでは埋め込み表示されませんでした。
※「newer version」とはどのような状態を指すのか、また現在利用している Microsoft Lists App が newer version かどうかの確認方法が分からなかったため、GitHub で Issue を作成し、質問してみています。
⚠ 注意事項2:埋め込み専用のURL?でなければいけない
「YouTube の動画を試しに埋め込ませてみよう!」と [共有] ボタンを押して表示されるURLをコード内の src
に設定してみたところ、埋め込み表示されませんでした。
「どこが悪いのか…」と再度ドキュメントを見返してみると、「Note that the src has to be just the url part of an embeddable code generated by an app.」と記載されていることに気が付きました。
YouTube の埋め込み用コード内に記載されているURLを、書式設定のコード内の src
を設定してみたところ、埋め込み表示されました。
どうやら src
に設定するURLは、埋め込み専用のURL?でないとダメみたいです。
⚠ 注意事項3:「HTML フィールドのセキュリティ」を設定しなければいけない
SharePoint のサイトでは埋め込みに関する制限があります。埋め込み先のサイトが埋め込み許可されていない場合、埋め込み表示されません。
詳細は、次のリンク先をご確認ください。
カスタム フォーマッタを使用して SharePoint リストにコンテンツを埋め込む機能を許可または制限する
⚠ 注意事項4:src の設定に @currentField を利用できない
列の値を src
プロパティに設定するため、"src": "@currentField"
とコーディングしたところ、埋め込み表示されませんでした。"src": "[$列の内部名]"
とコーディングしたところ、埋め込み表示されました。
どうやら src
の設定に @currentField は利用できない?ようです。
2024/08/07 追記:@currentField が利用できるようになっていました。
サンプルコード
以下は、検証時に作成したサンプルコードです。[Watch YouTube] ボタンを表示させる書式設定です。ボタンをクリックすると、YouTube 列(列の内部値:YouTube)に設定されているURL先の動画が埋め込み表示されます。
2024/09/17 追記
PnP のリポジトリにも embed を利用したサンプルを追加しました。