カスタム・イベントのサブスクライブ
任意のカスタム・イベントをサブスクライブするには、GlobalContext、RecordContextおよびBrowser-TabContextでUEFサブスクライブAPIを呼び出します。
サブスクリプションを追加するイベントはCustomEventです。 イベント・リクエスト・ペイロード・ユーザーがcustomEventNameを渡し、この方法でサブスクリプションを追加できる場合は、サブスクリプションの追加先のコンテキストでイベントが生成されるたびに通知されます。 イベント・サブスクリプションのレスポンス・オブジェクトでgetData()
およびgetCustomEventName()
をコールすると、イベントで渡されるデータ、およびイベントが起動されるカスタム・イベントを取得できます。
次の例は、様々なコンテキストでのカスタム・イベント・サブスクリプションの追加を示しています:
GlobalContextでのカスタム・イベントのサブスクライブ
GlobalContext
にカスタム・イベント・サブスクリプションを追加するTypeScriptの例を次に示します。
const subscribeCustomEvent = async () => {
const payload: ICustomEventSubscriptionRequest = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('cxEventBusCustomEvent') as ICustomEventSubscriptionRequest;
payload.setCustomEventName('customEventName');
const globalContext: IGlobalContext = await uiEventsFrameworkInstance.getGlobalContext();
globalContext.subscribe(payload, (message: IEventResponse) => {
const response: ICustomEventSubscriptionResponse = message as ICustomEventSubscriptionResponse;
console.log(response.getResponseData());
console.log(response.getResponseData().getData());
console.log(response.getResponseData().getCustomEventName())
});
};
GlobalContext
にカスタム・イベント・サブスクリプションを追加するJavaScriptの例を次に示します。
const subscribeCustomEvent = async () => {
const payload = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('cxEventBusCustomEvent');
payload.setCustomEventName('customEventName');
const globalContext = await uiEventsFrameworkInstance.getGlobalContext();
globalContext.subscribe(payload, (response) => {
console.log(response.getResponseData());
console.log(response.getResponseData().getData());
console.log(response.getResponseData().getCustomEventName())
});
};
TabContextでのカスタム・イベントのサブスクライブ(ブラウザ・タブ)
TabContext
にカスタム・イベント・サブスクリプションを追加するTypeScriptの例を次に示します。
const subscribeCustomEvent = async () => {
const payload: ICustomEventSubscriptionRequest = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('cxEventBusCustomEvent') as ICustomEventSubscriptionRequest;
payload.setCustomEventName('customEventName');
const tabContext:ITabContext = await uiEventsFrameworkInstance.getTabContext('browserTabId');
tabContext.subscribe(payload, (message: IEventResponse) => {
const response: ICustomEventSubscriptionResponse = message as ICustomEventSubscriptionResponse;
console.log(response.getResponseData());
console.log(response.getResponseData().getData());
console.log(response.getResponseData().getCustomEventName())
});
};
TabContext
にカスタム・イベント・サブスクリプションを追加するJavaScriptの例を次に示します。
const subscribeCustomEvent = async () => {
const payload = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('cxEventBusCustomEvent');
payload.setCustomEventName('customEventName');
const tabContext = await uiEventsFrameworkInstance.getTabContext('browserTabId');
tabContext.subscribe(payload, (response) => {
console.log(response.getResponseData());
console.log(response.getResponseData().getData());
console.log(response.getResponseData().getCustomEventName())
});
};
RecordContextでのカスタム・イベントのサブスクライブ
RecordContext
にカスタム・イベント・サブスクリプションを追加するTypeScriptの例を次に示します。
const subscribeCustomEvent = async () => {
const payload: ICustomEventSubscriptionRequest = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('cxEventBusCustomEvent') as ICustomEventSubscriptionRequest;
payload.setCustomEventName('customEventName');
const tabContext: ITabContext = await uiEventsFrameworkInstance.getTabContext('browserTabId');
const recordContext: IRecordContext = await tabContext.getActiveRecord();
recordContext.subscribe(payload, (message: IEventResponse) => {
const response: ICustomEventSubscriptionResponse = message as ICustomEventSubscriptionResponse;
console.log(response.getResponseData());
console.log(response.getResponseData().getData());
console.log(response.getResponseData().getCustomEventName())
});
};
RecordContext
にカスタム・イベント・サブスクリプションを追加するJavaScriptの例を次に示します。
const subscribeCustomEvent = async () => {
const payload = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('cxEventBusCustomEvent');
payload.setCustomEventName('customEventName');
const tabContext = await uiEventsFrameworkInstance.getTabContext('browserTabId');
const recordContext = await tabContext.getActiveRecord();
recordContext.subscribe(payload, (response) => {
console.log(response.getResponseData());
console.log(response.getResponseData().getData());
console.log(response.getResponseData().getCustomEventName())
});
};