lightning:container
lightning:container コンポーネントでは、Lightning コンポーネント内でサードパーティのフレームワークを使用して開発されたコンテンツをホストできます。このコンテンツは静的リソースとしてアップロードされ、iFrame でホストされます。lightning:container コンポーネントは、単一ページアプリケーションにのみ使用できます。
次に、myReactApp という名前の静的リソースとしてアップロードされたアプリケーションを読み込む簡単な lightning:container の例を示します。
URL を介して属性の値をコンテナに渡すには、コンポーネント内で属性を定義し、src 属性を使用して渡します。
また、フレーム化されたアプリケーションとの通信を実装でき、Salesforce とのやりとりが可能になります。JavaScript コントローラで message() 関数を使用して、アプリケーションにメッセージを送信し、コンポーネントの onmessage 属性でメッセージを処理するメソッドを指定します。
この例では、コンテナから Lightning コンポーネントに送信するメッセージの属性および受信したメッセージの属性を定義します。
クライアント側コントローラは、message() 関数を使用して、簡単な JSON ペイロードを AngularJS アプリケーションに送信します。
コントローラ側のメッセージ処理は自身で定義するため、この処理を使用してあらゆる種類のメッセージペイロードを処理できます。たとえば、単にテキスト文字列を送信することや、構造化された JSON 応答を返すことができます。
使用上の考慮事項コンテナの src を指定するときに、ホスト名を指定しないでください。代わりに、$Resource をドット表記で使用して、静的リソースとしてアップロードされたアプリケーションを参照します。
詳細は、『Lightning コンポーネント開発者ガイド』を参照してください。
アクセシビリティalternativeText 属性を使用して、Lightning コンテナの補助テキストを指定します。
メソッド��のコンポーネントは、次のメソッドをサポートします。
message(): ユーザ定義のメッセージをコンポーネントから iFrame コンテンツに送信します。
属性
| 属性名 | 属性型 | 説明 | 必須項目? |
|---|---|---|---|
| alternativeText | String | アクセシビリティのシナリオで代替テキストに使用します。 | |
| body | Component[] | コンポーネントのボディ。マークアップでは、これはタグのボディに含まれるすべてを指します。 | |
| class | String | iframe 要素の CSS クラス。 | |
| onerror | Action | 含まれているアプリケーションへのメッセージ送信時にエラーが発生した場合に実行するクライアント側コントローラのアクション。 | |
| onmessage | Action | 含まれているアプリケーションからメッセージを受信した場合に実行するクライアント側コントローラのアクション。 | |
| src | String | URL 形式のリソース名、ランディングページ、およびクエリパラメータ。ナビゲーションは、特定された単一のページでのみサポートされます。 | はい |