Lightning Experience の openSubtab()
ワークスペースタブ内のサブタブを開きます。サブタブがすでに開いている場合、サブタブがフォーカスされます。このメソッドは、Lightning コンソールアプリケーションでのみ機能します。
引数
Aura コンポーネントと Lightning Web コンポーネント (LWC) のいずれの場合でも、このメソッドの引数は同じです。ただし、icon、iconAlt、および label は、LWC でのみサポートされています。
| 名前 | 型 | 説明 |
|---|---|---|
| parentTabId | string | 新しいサブタブを開くワークスペースタブの ID。親タブの ID は openSubtab() メソッドに渡す必要があります。 |
| pageReference | object | 省略可能。開く pageReference を指定します。 |
| recordId | ID | 省略可能。開くレコードを指定します。 |
| url | string |
省略可能。新しいワークスペースタブのコンテンツを表す URL。 URL は、相対 URL または絶対 URL になります。サードパーティドメインを使用するには、サイトを CSP 信頼済みサイトとして追加します。 |
| focus | boolean | 省略可能。新しいサブタブにフォーカスするかどうかを指定します。すぐにサブタブを表示するには、focus を true に設定します。バックグラウンドでサブタブを開くには、focus を false に設定します。 |
| icon | string | 省略可能。SLDS アイコンキー。SLDS リファレンスサイトでアイコンキーの完全なリストを確認してください。LWC でのみ使用できます。 |
| iconAlt | string | 省略可能。アイコンの代替テキスト。LWC でのみ使用できます。 |
| label | string | 省略可能。アイコンのテキスト表示ラベル。LWC でのみ使用できます。 |
LWC のサンプルコード
このコンポーネントは、EnclosingTabId ワイヤーアダプターを使用して、囲んでいるタブ ID を取得します。handleClick() 関数がコールされると、現在のタブ上のサブタブを開きます。コンポーネントがタブ内にもサブタブ内にも存在しない場合、tabId は null になります。
現在のタブがサブタブかどうかを確認するには、getTabInfo() を使用します。現在のタブがサブタブの場合、親タブ ID を openSubtab() 関数に渡します。
1import { LightningElement, wire } from 'lwc';
2import { EnclosingTabId, getTabInfo, openSubtab } from 'lightning/platformWorkspaceApi';
3
4export default class OpenSubtabExample extends LightningElement {
5 @wire(EnclosingTabId) tabId;
6
7 async handleClick() {
8 if (!this.tabId) {
9 return;
10 }
11
12 const tabInfo = await getTabInfo(this.tabId);
13 const primaryTabId = tabInfo.isSubtab ? tabInfo.parentTabId : tabInfo.tabId;
14
15 // Open a record as a subtab of the current tab
16 await openSubtab(primaryTabId, { recordId: 'YourRecordId', focus: true });
17 }
18}Aura コンポーネントのサンプルコード
このコンポーネントにはボタンがあり、押すと、ワークスペースタブ内のサブタブが開きます。
コンポーネントコード:
1<aura:component implements="flexipage:availableForAllPageTypes" access="global" >
2 <lightning:workspaceAPI aura:id="workspace" />
3 <lightning:button label="Open Tab with Subtab" onclick="{! c.openTabWithSubtab }" />
4 </aura:component>コントローラーコード:
1({
2 openTabWithSubtab : function(component, event, helper) {
3 var workspaceAPI = component.find("workspace");
4 workspaceAPI.openTab({
5 url: '/lightning/r/Account/001xx000003DI05AAG/view',
6 focus: true
7 }).then(function(response) {
8 workspaceAPI.openSubtab({
9 parentTabId: response,
10 url: '/lightning/r/Contact/003xx000004Ts30AAC/view',
11 focus: true
12 });
13 })
14 .catch(function(error) {
15 console.log(error);
16 });
17 }
18})応答
このメソッドは、成功時に新しいサブタブの ID に解決される Promise を返します。