ITabContext
アプリケーション・レベルのイベントをリスニングし、特定のブラウザ・タブまたはMSIタブからアプリケーション・レベルの操作を実行できます。 たとえば、コンテキストのオープン、コンテキストのクローズなどをリスニングします。
TabContextへの参照を取得するには、getTabContext関数を使用します。 この関数は、アプリケーションがロードされるアクティブなタブへの参照を提供します。 browserTabIdをオプションのパラメータとして渡して、特定のブラウザ・タブのコンテキストを取得できます。
構文は次のとおりです:
getTabContext(browserTabId?: string): Promise<ITabContext>;
パラメータ名 | 必須かどうか | 説明 |
---|---|---|
browserTabId | No | 特定のブラウザ・タブのID。 ノート: 各ブラウザ・タブからframeworkProviderでgetCurrentTabId APIをコールすることで、各ブラウザのtabIdを取得できます。
|
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider : IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const tabContext: ITabContext = await frameworkProvider.getTabContext();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID', 'v1');
const tabContext = await frameworkProvider.getTabContext();
getTypeファンクション
tabContextオブジェクトの型を返します。 タイプは、「ブラウザ」タブ、「MSI」タブまたは「MSIサブ」タブです。
getType(): string;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext: ITabContext = await frameworkProvider.getTabContext();
const type: string = tabContext.getType();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext = await frameworkProvider.getTabContext();
const type = tabContext.getType();
サブスクライブ
このAPIを使用して、Fusionアプリケーションからイベントをサブスクライブします。 このAPIを使用すると、外部アプリケーションはFusionアプリケーションからアプリケーション・レベルのイベントをリスニングできます。 イベントがこのAPIを使用してサブスクライブされると、サブスクリプションが処分されるまで外部アプリケーションに通知されます。
subscribe: (payload: IEventSubscriptionPayload, callbackFunction: (response:IEventResponsePayload) => void)
=> ISubscriptionContext;
パラメータ | 必須かどうか | 説明 |
---|---|---|
payload | Yes | サブスクライブ中のイベントのリクエスト・オブジェクト。 |
callbackFunction | Yes | イベント・レスポンスを引数として取得するコールバック関数。 |
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext: ITabContext = await frameworkProvider.getTabContext();
const payload: IEventRequest = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusContextCloseEvent');
const subscriptionContext: ISubscriptionContext = tabContext.subscribe(payload, (response: IEventResponse) => {
// custom code
});
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext = await frameworkProvider.getTabContext();
const payload = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusContextCloseEvent');
const subscriptionContext = tabContext.subscribe(payload, (response) => {
// custom code
});
subscribeOnce
このAPIを使用して、Fusionイベントを1回のみサブスクライブします。 このAPIを使用すると、外部アプリケーションはFusionアプリケーションからアプリケーション・レベルのイベントをリスニングできます。 ただし、このサブスクリプションは、最初の通知後に自動的に破棄されます。
subscribeOnce: (payload: IEventSubscriptionPayload, callbackFunction: (response: IEventResponsePayload) => void) => ISubscriptionContext;
パラメータ | 必須かどうか | 説明 |
---|---|---|
payload | Yes | サブスクライブ中のイベントのリクエスト・オブジェクト。 |
callbackFunction | Yes | イベント・レスポンスを引数として取得するコールバック関数。 |
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext: ITabContext = await frameworkProvider.getTabContext();
const payload: IEventRequest = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusContextCloseEvent');
const subscriptionContext = tabContext.subscribeOnce(payload, (response: IEventResponse) => {
// custom code
});
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext = await frameworkProvider.getTabContext();
const payload = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusContextCloseEvent');
const subscriptionContext = tabContext.subscribeOnce(payload, (response) => {
// custom code
});
公開
このAPIは、動作するようにFusionアプリケーションに通知できます。 APIは、then-catchブロックを追加できるpromiseを返します。 thenブロックは、操作のステータスと、プロセスの完了後に返されるデータを返します。
publish: (requestObject: IOperationRequest) => Promise<IOperationResponse>;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabs: ITabContext[] = await frameworkProvider.getAvailableTabs();
const tabContext: ITabContext = tabs[0];
const payload: IOperationRequest = frameworkProvider.requestHelper.createPublishRequest('cxEventBusFocusTabOperation');
tabContext.publish(payload).then((message: IOperationResponse) => {
const response: IFocusTabResponseData = message as IFocusTabResponseData;
const currentTab: ITabContext = response.getResponseData().getCurrentTab();
const previousTab: ITabContext = response.getResponseData().getPreviousTab()
}).catch((error: IErrorData) => {
// error
});
const tabs = await frameworkProvider.getAvailableTabs();
const tabContext = tabs[0];
const payload = frameworkProvider.requestHelper.createPublishRequest('cxEventBusFocusTabOperation');
tabContext.publish(payload).then((response) => {
const currentTab = response.getResponseData().getCurrentTab();
const previousTab = response.getResponseData().getPreviousTab()
}).catch((error) => {
// error
});
処分
dispose:() => void;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext: ITabContext = await frameworkProvider.getTabContext();
const payload: IEventRequest = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusContextCloseEvent');
const subscriptionContext: ISubscriptionContext = tabContext.subscribe(payload, (response: IEventResponse) => {
// custom code
});
tabContext.dispose();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext = await frameworkProvider.getTabContext();
const payload = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusContextCloseEvent');
const subscriptionContext = tabContext.subscribe(payload, (response) => {
// custom code
});
tabContext.dispose();
getSupportedEvents
このメソッドは、globalContext上でサポートされているすべてのイベントを返します。
getSuportedEvents(): string[];
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext: ITabContext = await frameworkProvider.getTabContext();
const supportedEvents: string[] = tabContext.getSupportedEvents();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext = await frameworkProvider.getTabContext();
const supportedEvents = tabContext.getSupportedEvents();
getSupportedActions
このメソッドは、globalContext上でサポートされているすべてのアクションを返します。
getSupportedActions(): string[];
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext: ITabContext = await frameworkProvider.getTabContext();
const supportedActions: string[] = tabContext.getSupportedActions();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext = await frameworkProvider.getTabContext();
const supportedActions = tabContext.getSupportedActions();
getAvailableTabs
このメソッドは、特定のタブまたはそのtabContextの上で使用可能なすべてのタブを返します。
getAvailableTabs(): Promise<ITabContext[]>;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext: ITabContext = await frameworkProvider.getTabContext();
const availableTabs: ITabContext[] = await tabContext.getAvailableTabs();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext = await frameworkProvider.getTabContext();
const availableTabs = await tabContext.getAvailableTabs();
getActiveRecord
このメソッドは、特定のタブ上のすべてのアクティブなレコードを返します。
getActiveRecord(): Promise<IRecordContext>;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext: ITabContext = await frameworkProvider.getTabContext();
const activeRecord: IRecordContext = await tabContext.getActiveRecord();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext = await frameworkProvider.getTabContext();
const activeRecord = await tabContext.getActiveRecord();
getAvailableRecord
このメソッドは、特定のタブで使用可能なすべてのレコードを返します。
getAvailableRecords(): Promise<IRecordContext[]>;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext: ITabContext = await frameworkProvider.getTabContext();
const availableRecords: IRecordContext[] = await tabContext.getAvailableRecords();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext = await frameworkProvider.getTabContext();
const dependentTabs = await tabContext.getDependentTabs();
getTabInfo
このメソッドは、TabContextに関連付けられたタブID、MSIタブIDおよびMSIタブIDを返します。
getTabInfo(): ITabInfo;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext: ITabContext = await frameworkProvider.getTabContext();
const tabInfo: ITabInfo = tabContext.getTabInfo();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext = await frameworkProvider.getTabContext();
const tabInfo = await tabContext.getTabInfo();
getEngagementInfo
このメソッドは、TabContextに関連付けられたエンゲージメントを返します。
getEngagementInfo(): Promise<IEngagementInfo>;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext: ITabContext = await frameworkProvider.getTabContext();
const engagementInfo: IEngagementInfo = await tabContext.getEngagementInfo();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID''v1');
const tabContext = await frameworkProvider.getTabContext();
const engagementInfo = await tabContext.getEngagementInfo();