ITabContext
アプリケーション・レベルのイベントをリスニングし、特定のブラウザ・タブまたはMSIタブからアプリケーション・レベルの操作を実行できます。 たとえば、コンテキストのオープン、コンテキストのクローズなどをリスニングします。
TabContextへの参照を取得するには、getTabContext関数を使用します。 この関数は、アプリケーションがロードされるアクティブなタブへの参照を提供します。 browserTabIdをオプションのパラメータとして渡して、特定のブラウザ・タブのコンテキストを取得できます。
構文は次のとおりです:
getTabContext(browserTabId?: string): Promise<ITabContext>;| パラメータ名 | 必須かどうか | 説明 | 
|---|---|---|
| browserTabId | いいえ | 特定のブラウザ・タブの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 | はい | サブスクライブ中のイベントのリクエスト・オブジェクト。 | 
| callbackFunction | はい | イベント・レスポンスを引数として取得するコールバック関数。 | 
/// <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 | はい | サブスクライブ中のイベントのリクエスト・オブジェクト。 | 
| callbackFunction | はい | イベント・レスポンスを引数として取得するコールバック関数。 | 
/// <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();