getAllTabInfo() for Lightning Experience

Returns information about all open tabs. This method works only in Lightning console apps.

Arguments

None.

LWC Sample Code

This component has a function that returns the information on all tabs.

1import { LightningElement, wire } from 'lwc';
2import { IsConsoleNavigation, getAllTabInfo } from 'lightning/platformWorkspaceApi';
3
4export class GetAllTabInfoExample extends LightningElement {
5    @wire(IsConsoleNavigation) isConsoleNavigation;
6
7    async handleOpen() {
8        if (!this.isConsoleNavigation) {
9            return;
10        }
11        try {
12            const tabInfo = await getAllTabInfo();
13            //do something with tabInfo
14        } catch (error) {
15            console.log(error);
16        }
17    }
18}

For another example that uses getAllTabInfo(), see focusTab().

To make your component available for use in a Lightning console app, specify the lightning__AppPage target in the component’s configuration file.

Aura Components Sample Code

This component has a button that, when pressed, gets the info of all open tabs and prints the resulting tabInfo object.

Component code:

1<aura:component implements="flexipage:availableForAllPageTypes" access="global" >
2    <lightning:workspaceAPI aura:id="workspace" />
3    <lightning:button label="Get All Tab Info" onclick="{! c.handleGetAllTabInfo }" />
4</aura:component>

Controller code:

1({
2    handleGetAllTabInfo : function(component, event, helper) {
3        var workspaceAPI = component.find("workspace");
4        workspaceAPI.getAllTabInfo().then(function(response) {
5            console.log(response);
6       })
7        .catch(function(error) {
8            console.log(error);
9        });
10    }
11})

Response

This method returns a promise that, upon success, resolves to an array of tabInfo objects. A tabInfo object is a JSON array of information about a workspace tab, with nested arrays of information on each subtab. This is the structure of a tabInfo object.
1{
2     tabId: string,
3     url: string (URL),
4     pinned: boolean,
5     closeable: boolean,
6     title: string,
7     icon: string (SLDS iconKey),
8     iconAlt: string,
9     customTitle: string (optional),
10     customIcon: string (optional),
11     customIconAlt: string (optional),
12     highlighted: boolean,
13     pageReference: object,
14     isSubtab: boolean,
15     parentTabId: string,
16     subtabs: [
17         {
18             tabId: string,
19             url: string (URL),
20             pinned: boolean,
21             closeable: boolean,
22             title: string,
23             icon: string (SLDS iconKey),
24             iconAlt: string,
25             customTitle: string (optional),
26             customIcon: string (optional),
27             customIconAlt: string (optional),
28             highlighted: boolean,
29             pageReference: object,
30             isSubtab: boolean,
31             parentTabId: string,
32             focused: boolean,
33             recordId: string,
34          },
35           ... 
36     ],
37     focused: boolean,
38     recordId: string
39}