IGlobalContext
IGlobalContextを使用すると、アプリケーション・レベルのイベントをリスニングし、アプリケーション・レベルの操作を実行できます。 たとえば、コンテキストのオープン、コンテキストのクローズなどをリスニングします。
GlobalContextへの参照を取得するには、getGlobalContext関数を使用します。 このファンクションは、アプリケーションglobalContextへの参照を提供します。
getGlobalContext(): Promise<IGlobalContext>;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext = await frameworkProvider.getGlobalContext();
関数
- サブスクライブ
- subscribeOnce
- 公開
- 処分
- getSupportedEvents
- getSupportedActions
サブスクライブ
この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');
const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
const payload: IEventRequest = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusTabCloseEvent');
const subscriptionContext: ISubscriptionContext = globalContext.subscribe(payload, (response: IEventResponse) => {
// custom code
});
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext = await frameworkProvider.getGlobalContext();
const payload = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusTabCloseEvent');
const subscriptionContext = globalContext.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');
const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
const payload: IEventRequest = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusTabCloseEvent');
const subscriptionContext: ISubscriptionContext = globalContext.subscribeOnce(payload, (response: IEventResponse) => {
// custom code
});
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext = await frameworkProvider.getGlobalContext();
const payload = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusTabCloseEvent');
const subscriptionContext = globalContext.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');
const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
const payload: IEventRequest = frameworkProvider.requestHelper.createPublishRequest('cxEventBusCustomEventOperation');
globalContext.publish(payload).then((response: IOperationResponse)=>{
// custom code
}).catch((error)=>{
// error
})
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext = await frameworkProvider.getGlobalContext();
const payload = frameworkProvider.requestHelper.createPublishRequest('cxEventBusCustomEventOperation');
globalContext.publish(payload).then((response) => {
// custom code
}).catch((error) => {
// error
})
処分
dispose:() => void;
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: CX_SVC_UI_EVENTS_FRAMEWORK.IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext: CX_SVC_UI_EVENTS_FRAMEWORK.IGlobalContext = await frameworkProvider.getGlobalContext();
const requestObject: CX_SVC_UI_EVENTS_FRAMEWORK.IEventRequest = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('cxEventBusContextCloseEvent');
const subscriptionContext: CX_SVC_UI_EVENTS_FRAMEWORK.ISubscriptionContext = globalContext.subscribe(requestObject, (response: CX_SVC_UI_EVENTS_FRAMEWORK.IEventResponse) => {
// custom code
});
globalContext.dispose();
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext = await frameworkProvider.getGlobalContext();
const requestObject = uiEventsFrameworkInstance.requestHelper.createSubscriptionRequest('cxEventBusContextCloseEvent');
const subscriptionContext = globalContext.subscribe(requestObject, (response: CX_SVC_UI_EVENTS_FRAMEWORK.IEventResponse) => {
// custom code
});
globalContext.dispose();
getSupportedEvents
このメソッドは、globalContext上でサポートされているすべてのイベントを返します。
getSuportedEvents(): string[];
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: CX_SVC_UI_EVENTS_FRAMEWORK.IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext = await frameworkProvider.getGlobalContext();
const supportedEvents= globalContext.getSupportedEvents();
getSupportedActions
このメソッドは、globalContext上でサポートされているすべてのアクションを返します。
getSupportedActions(): string[];
/// <reference path="uiEventsFramework.d.ts"/>
const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext: IGlobalContext = await frameworkProvider.getGlobalContext();
const supportedActions: string[] = globalContext.getSupportedActions();
getGlobalContextId
このメソッドは、GlobalContextオブジェクトの一意のコンテキストIDをすべて返します。
getGlobalContextId(): string;
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
const globalContext = await frameworkProvider.getGlobalContext();
const globalContextId = globalContext.getGlobalContextId();
複数のブラウザ・タブに対するGlobalContextのUIイベント・フレームワーク・アクション
UIイベント・フレームワークでは、GlobalContext、TabContext、RecordContexts、PhoneContextなどの4つの異なるコンテキストがサポートされます。 GlobalContextでサポートされているイベントをリスニングする場合、アプリケーションでロードされているブラウザ・タブのいずれかからこのイベントが発生するたびに通知を受け取ります。
ただし、アクションの場合、globalContextの上で実行されるアクションは、現在のブラウザ・タブでのみ実行されます。 そのため、イベントおよびアクションに対するglobalContextの動作は異なります。
また、ブラウザのタブごとにアクションを実行できるユースケースもあります。 これにより、期待した結果が戻されない場合があります。 CustomEvent、PopUp、モーダルおよびGetAgentInfoは、GlobalContextでサポートされているアクションで、単一のアクション・パブリッシュで複数のブラウザ・タブで実行できます。
- 複数のブラウザ・タブが開いている場合は、ユーザーがsetPropagateToTabsメソッドをTrueに設定すると、すべてのブラウザ・タブに操作リクエストが送信されます
- このアクションをリクエストしたクライアントは、すべてのブラウザ・タブがこのリクエストを完了としてマークしたときにのみ肯定的なフィードバックを受け取ります。
- クライアントは、以前と同じように単一のレスポンスを取得するのではなく、パブリッシュ・リクエストのthenブロックでIOperationResponseの配列を受け取ります。
- OperationResponse配列の各エントリには、実行された各ブラウザ・タブのコンテキストと、対応するレスポンス・データが含まれます。
- catchブロックは、いずれかのブラウザ・タブがこのアクション・リクエストを却下したときに実行されます。ノート: レスポンス構造は、TabContextおよびRecordContextのアクションの以前のリリースと同じになります。 GlobalContextレベルのアクション・レスポンスのみがIOperationResponseの配列に変更されます。