この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Lightning コンソール JavaScript API の構文

Lightning コンソール JavaScript API メソッドは、Lightning Web コンポーネントの JavaScript ファイル、または Aura コンポーネントの JavaScript コントローラーで使用します。

LWC の構文

LWC ワークスペース API を使用するには、JavaScript コードに lightning/platformWorkspaceApi をインポートします。

lightning/platformWorkspaceApi モジュールでは、ワークスペース API メソッド、ワイヤーアダプター、および Lightning メッセージチャネルにアクセスできます。Lightning メッセージチャネルにアクセスするには、インポート元を @salesforce/messageChannel/lightning__tab* にします。たとえば、@salesforce/messageChannel/lightning__tabClosed にします。

Lightning Web セキュリティが Salesforce 組織で有効になっている必要があります。

メモ

次の例は、openSubtab API メソッドEnclosingTabId ワイヤーアダプターを使用する Lightning Web コンポーネントを示しています。

1import { LightningElement, wire } from 'lwc';
2import { EnclosingTabId, openSubtab } from 'lightning/platformWorkspaceApi';
3
4export default class MyComponent extends LightningElement {
5  @wire(EnclosingTabId) tabId;
6
7  handleClick() {
8    if (!this.tabId) {
9      return;
10    }
11    // Open a record as a subtab of the current tab
12    openSubtab(this.tabId, { recordId: 'YourRecordId', focus: true });
13  }
14}

Lightning アプリケーションビルダーでコンポーネントにアクセスできるように、コンポーネントの .js-meta.xml ファイルを設定します。

1<?xml version="1.0" encoding="UTF-8"?>
2<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
3  <apiVersion>59.0</apiVersion>
4  <isExposed>true</isExposed>
5  <targets>
6      <target>lightning__RecordPage</target>
7      <target>lightning__AppPage</target>
8      <target>lightning__HomePage</target>
9  </targets>
10</LightningComponentBundle>

LWC では、ワークスペース API メソッドのみがサポートされています。Aura の場合と同様、ワークスペース API のメソッドは、引数として JSON オブジェクトを取ります。オブジェクトに含まれる値は、メソッドによって異なります。たとえば、openTab は、urlfocus (新しいタブにフォーカスするかどうか) が含まれるオブジェクトを取ります。メソッドを使用する前にこのガイドの「参照」セクションを参照して、メソッドに渡す引数を確認してください。

Aura コンポーネントの構文

Lightning コンソール JavaScript API を使用するには、lightning:navigationItemAPIlightning:workspaceAPIlightning:utilityBarAPI を Aura コンポーネントに含めます。

lightning:navigationItemAPIlightning:workspaceAPIlightning:utilityBarAPI コンポーネントを使用すると、これらの調整 API にアクセスできます。各コンポーネントに aura:id を付与して、コンポーネントのコントローラーから参照できるようにします。

次の例では、API ライブラリを使用する簡単な Aura コンポーネントを示します。

1<aura:component implements="flexipage:availableForAllPageTypes" access="global">
2    <lightning:navigationItemAPI aura:id="navigationItem" />
3    <lightning:workspaceAPI aura:id="workspace" />
4    <lightning:utilityBarAPI aura:id="utilityBar" />
5    <lightning:button label="Focus Navigation Item" onclick="{!c.focusNavigationItem }" />
6    <lightning:button label="Open Utility" onclick="{!c.openUtilityBar }"/>
7    <lightning:button label="Open Tab" onclick="{!c.openTab }" />
8</aura:component>

このコンポーネントは flexipage:availableForAllPageTypes を実装しているため、Lightning アプリケーションビルダーでアクセスできます。

コンポーネントの JavaScript コントローラーは次のようになります。

1({
2    openUtilityBar : function(component, event, helper) {
3        var utilityAPI = component.find("utilitybar");
4        utilityAPI.openUtility();
5    },
6
7    openTab: function(component, event, helper) {
8        var workspaceAPI = component.find("workspace");
9        workspaceAPI.openTab({
10            pageReference: {
11                "type": "standard__recordPage",
12                "attributes": {
13                    "recordId":"500xx000000Ykt2AAC",
14                    "actionName":"view"
15                },
16                "state": {}
17            },
18            focus: true
19        }).then(function(response) {
20            workspaceAPI.getTabInfo({
21            tabId: response
22        }).then(function(tabInfo) {
23            console.log("The recordId for this tab is: " + tabInfo.recordId);
24        });
25        }).catch(function(error) {
26            console.log(error);
27        });
28    },
29
30    focusNavigationItem : function(component, event, helper) {
31        var navigationItemAPI = component.find("navigationItem");
32        navigationItemAPI.focusNavigationItem().then(function(response) {
33            console.log(response);
34        })
35        .catch(function(error) {
36            console.log(error);
37        });
38    } 
39})

コントローラーには、API メソッドを使用する 3 つの関数があります。コントローラーでメソッドを使用するには、lightning:navigationItemAPIlightning:workspaceAPIlightning:utilityBarAPI に付与した aura:id と共に component.find を使用します。

ワークスペース API とユーティリティバー API のメソッドは、引数として JSON オブジェクトを取ります。オブジェクトに含まれる値は、メソッドによって異なります。たとえば、openTab は、urlfocus (新しいタブにフォーカスするかどうか) が含まれるオブジェクトを取ります。メソッドを使用する前にこのガイドの「参照」セクションを参照して、メソッドに渡す引数を確認してください。

LWC と Aura のガイドライン

Lightning コンソール JavaScript API を操作するときは、次のガイドラインを考慮してください。

  • LWC の場合、必須パラメーターは focusTab(tabId); のようにメソッドに明示的に渡されます。Aura の場合、必須パラメーターは workspaceAPI.focusTab({tabId : response}); のようにオブジェクトのメソッドに渡されます。
  • LWC では、Lightning Experience ページに一致する URL を渡します。たとえば、/lightning/r/Account/001R0000003HgssIAC/view のような URL を渡します。