ITabContext
Enables you to listen to application-level events and perform application-level operations from a specific browser tab or MSI tab. For example, listening to context open, context close, and so on.
To get the reference to TabContext, you can use the getTabContext function. This function provides a reference to the active tab in which the application is loaded. You can pass the browserTabId as an optional parameter to get a particular browser tab's context.
Here's the syntax:
getTabContext(browserTabId?: string): Promise<ITabContext>;
Parameter Name | Required? | Description |
---|---|---|
browserTabId | No | A particular browser tab's ID. Note: You can get each browser's tabId by
calling the getCurrentTabId API on the frameworkProvider
from each browser tab.
|
/// <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 Function
Returns the type of a tabContext object. The type can be Browser Tab, MSI tab or MSI Sub Tab.
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();
subscribe
Use this API to subscribe to an event from the Fusion application. Using this API, the external application can listen to the application level events from the the Fusion application. Once an event is subscribed using this API, an external application will be notified until the subscription is disposed.
subscribe: (payload: IEventSubscriptionPayload, callbackFunction: (response:IEventResponsePayload) => void)
=> ISubscriptionContext;
Parameter | Required? | Description |
---|---|---|
payload | Yes | Request object for the event being subscribed to. |
callbackFunction | Yes | A callback function where we get the event response as its arguments. |
/// <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
Use this API to subscribe to the Fusion event just once. Using this API, external applications can listen to the application level events from the Fusion application. But this subscription will be disposed of automatically after the first notification.
subscribeOnce: (payload: IEventSubscriptionPayload, callbackFunction: (response: IEventResponsePayload) => void) => ISubscriptionContext;
Parameter | Required? | Description |
---|---|---|
payload | Yes | Request object for the event being subscribed to. |
callbackFunction | Yes | A callback function where we get the event response as its arguments. |
/// <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
});
publish
This API can inform the Fusion application to operate. The API returns a promise to which you can add a then-catch block. The then block would return the operation's status and any data returned after the process is completed.
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
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
This method returns all the supported events on top of 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
This method returns all the supported actions on top of 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
This method returns all the available tabs on top of a specific tab or its 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
This method returns all the active records on a specific tab.
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
This method returns all the available records on a specific tab.
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
This method returns the tab ID, MSI tab ID and MSI tab ID associated with the TabContext.
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
This method returns the engagements associated with the 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();