メッセージチャネルでの公開
Visualforce ページからメッセージチャネルで公開するには、ページの JavaScript コードに $MessageChannel グローバル変数を含め、sforce.one.publish() をコールするメソッドを記述します。
例
github.com/trailheadapps/lwc-recipes リポジトリの lmsPublisherVisualforce ページでは、連絡先が選択されたときに、Lightning ページで登録者に通知するメッセージの登録方法が示されます。
次の例では、Visualforce ページのマークアップを説明し、ボタンがクリックされたときにメッセージチャネルに公開する方法を示します。
このページの JavaScript では、最初にカスタム Lightning メッセージチャネルへの参照を取得するために、数式 {!$MessageChannel.SampleMessageChannel__c} を使用しています。この式により、自分のメッセージチャネルに固有のトークンが作成されます。次に、このトークンを変数 SAMPLEMC に文字列として割り当てます。
関数 handleClick() には、公開するメ���セージコンテンツが含まれます。ここで、メッセージは、値が "some string" の recordId、および値が value: "some value" というキー - 値ペアの recordData です。次に、sforce.one オブジェクトに対して Lightning Message Service API の publish() メソッドをコールします。publish() 関数には、メッセージチャネルトークンを含む文字列とメッセージペイロードの 2 つのパラメーターがあります。
このページのマークアップでは、ボタンを作成して、その onclick() メソッドの handleClick() をコールします。
1<apex:page >
2 <script>
3 // Load the MessageChannel token in a variable
4 var SAMPLEMC = "{!$MessageChannel.SampleMessageChannel__c}";
5 function handleClick() {
6 const payload = {
7 recordId: "some string",
8 recordData: {value: "some value"}
9 }
10 sforce.one.publish(SAMPLEMC, payload);
11 }
12 </script>
13 <div>
14 <p>Publish SampleMessageChannel</p>
15 <button onclick="handleClick()">Publish</button>
16 </div>
17</apex:page>