Message Channel APIによる連携アプリケーションの開発
イベントの発火とサブスクリプション
import { LightningElement, wire } from "lwc";
import {
subscribe,
unsubscribe,
APPLICATION_SCOPE,
MessageContext
} from "lightning/messageService";
// シート内のセルにフォーカスした際のイベントを取得するMessage Channel
import MC_FOCUS_CELL from "@salesforce/messageChannel/msmxSheet__focusCell__c";
// イベントをサブスクライブするコンポーネント
export default class MyComponent extends LightningElement {
@wire(MessageContext)
messageContext;
subscr = null;
connectedCallback() {
// Message Channelのサブスクライブ
// 詳細はSalesforceのLightning Webコンポーネント開発のドキュメントを参照
this.subscr = subscribe(
this.messageContext,
MC_FOCUS_CELL,
(msg) => this.handleFocusCell(msg),
{ scope: APPLICATION_SCOPE }
);
}
disconnectedCallback() {
// Message Channelのアンサブスクライブ
if (this.subscr) {
unsubscribe(this.subscr);
}
this.subscr = null;
}
handleFocusCell(message) {
// do something important
console.log(message.cell.recordId);
}
}
イベントの種別と対応するMessage Channel
レコード選択 (Select Records)
Message Channel名
イベントメッセージに含まれるデータ
ロード完了 (Load Complete)
Message Channel名
イベントメッセージに含まれるデータ
セルのフォーカス (Focus Cell)
Message Channel名
イベントメッセージに含まれるデータ
カスタムイベントの発行 (Fire Custom Event)
Message Channel名
イベントメッセージに含まれるデータ
パラメーターの設定
パラメータ設定用Message Channelの仕様
Message Channel名
イベントメッセージに含めるデータ
コマンドの実行
コマンド実行用Message Channelの仕様
Message Channel名
イベントメッセージに含めるデータ
実行可能なコマンドの種別
シートのフォーカス
コマンド名
コマンド引数
レコードの保存
コマンド名
コマンド引数
Last updated