この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Lightning Message Service を使用した DOM 間の通信

Lightning Message Service を使用して、Lightning ページ内で DOM 全体の通信を行います。同じ Lightning ページに組み込まれた Visualforce ページ、Aura コンポーネント、および Lightning Web コンポーネント (ユーティリティバーおよびポップアウトユーティリティのコンポーネントを含む) の間で通信を行います。コンポーネントがアプリケーション全体のメッセージを登録するのか、有効な領域のメッセージのみを登録するのかを選択します。

Salesforce Classic から Lightning Experience に切り替えると、既存の Visualforce ページや Aura コンポーネントと通信できる Lightning Web コンポーネントを作成できるようになりました。Lightning Message Service を使用して、Open CTI 経由でソフトフォンと通信することもできます。

Lightning Message Service は、Lightning Experience で使用でき、エクスペリエンスビルダーサイトで使用される Lightning コンポーネントでは、ベータ機能として使用できます。

重要

Visualforce で Lightning Message Service にアクセスするには、$MessageChannel グローバル変数を使用します。メッセージは、シリアライズ可能な JSON オブジェクトです。メッセージに渡すことができるデータとしては、文字列、数字、オブジェクト、ブールなどがあります。関数や記号をメッセージに含めることはできません。Lightning Experience で使用できるグローバル変数は、$MessageChannel のみです。

組織内で作成されたメッセージチャネルの使用

組織内で開発した Lightning メッセージチャネルの使用例を次に示します。

1<apex:page>
2    <script>
3        // Load the MessageChannel token in a variable
4        var SAMPLEMC = "{!$MessageChannel.SampleMessageChannel__c}";
5    </script>
6</apex:page>

ここでは、数式 {!$MessageChannel.SampleMessageChannel__c} を使用して、カスタムメッセージチャネルを参照します。この式により、変数 SAMPLEMC に割り当てるトークンが作成されます。このトークンは、カスタムメッセージチャネルに固有のもので、Lightning Message Service API メソッド内で使用できます。構文 SampleMessageChannel__c は、LightningMessageChannel メタデータ型のカスタムインスタンスを参照します。__c サフィックスは、カスタムであることを示しますが、カスタムオブジェクトではないことに注意してください。詳細は、「メッセージチャネルの作成」を参照してください。

自分の組織に名前空間がある場合は、その名前空間をメッセージチャネル式に含めないでください。たとえば、自分の組織の名前空間が MyNamespace であっても、メッセージチャネル式は "{!$MessageChannel.SampleMessageChannel__c}" のままです。

組織外で作成されたメッセージチャネルの使用

組織外の開発者が作成したパッケージからのメッセージチャネルを使用するには、構文 {!$MessageChannel.Namespace_name__c} を使用して、それらのチャネルを参照します。たとえば、SampleMessageChannel が自分の組織に対してローカルではなく、名前空間 SamplePackageNamespace を持つパッケージに由来している場合、構文は {$MessageChannel.SamplePackageNamespace__SampleMessageChannel__c} になります。