APL 2024.3の新機能


APL 2024.3の新機能

Alexa Presentation Language(APL)2024.3では、APLに新機能が追加されました。

パッケージを動的にインポートする

新しいImportPackageコマンドを使用すると、APLパッケージをインポートして、パッケージの読み込み後にコマンドを実行できます。この機能により、優先度の低いパッケージの読み込みを遅らせながら、それらのパッケージに依存する要素の表示にかかる時間を最小限に抑えることができます。

このコマンドの詳細については、ImportPackageコマンドを参照してください。パッケージとパッケージに指定できるオプションの詳細については、APLパッケージを参照してください。

項目表示用の新しいFlexSequenceコンポーネント

新しいFlexSequenceコンポーネントは、Sequenceと同様に、子コンポーネントのシーケンスを表示します。ただし、FlexSequenceでは、子コンポーネントは非均等にすることができ、子項目はデフォルトでリストにラップされます。このコンポーネントは、スクロールビューにコンポーネントを繰り返して表示し、データセットをインフレートします。

詳細については、APL FlexSequenceを参照してください。

文字列操作用の新しい関数

データバインディングコンテキストのStringプロパティに、3つの新しい関数が追加されました。

  • String.indexOf(x,y[,z])
  • String.lastIndexOf(x,y[,z])
  • String.includes(x,y[,z])

詳細については、文字列関数を参照してください。

視覚コンテキストの追加情報

視覚コンテキストは、ユーザーがインテントを呼び出したりユーザーイベントをトリガーしたりした場合に、画面に表示されるコンテンツに関する情報をスキルに提供します。このコンテキストが更新され、プロパティが追加されました。

  • コンテキストオブジェクトのcomponentsVisibleOnScreenオブジェクトで、roleプロパティにより、コンポーネントのroleが報告されるようになりました。
  • viewportタグで、3つの新しいプロパティが報告されるようになりました。
    • utcTime - UTC時間(ミリ秒)です。
    • elapsedTime - このドキュメントの実行時間(ミリ秒単位)です。
    • trackedChanges - 新しいtrackChangesコンポーネントプロパティで追跡するようリクエストしたすべてのコンポーネントに対する変更の配列です。
  • mediaタグで、Videoコンポーネントの2つの新しいプロパティが報告されるようになりました。
    • muted - メディアがミュートされている場合はtrueです。
    • audioTrack - メディアが再生されるオーディオトラックです。

視覚コンテキストの詳細については、スキルリクエストのAPL視覚コンテキストを参照してください。

コンポーネントの変更

基本コンポーネントに、以下の新しいプロパティが追加されました。

  • onCursorMove - カーソルがコンポーネントのアクティブな領域内を移動したときに実行するコマンドの配列です。
  • trackChanges - 視覚コンテキストの変更を追跡して報告するためのプロパティの配列です。視覚コンテキストの新しいtrackedChangesプロパティで変更内容が提供されます。

基本コンポーネントのプロパティの詳細については、APL基本コンポーネントのプロパティを参照してください。

Textコンポーネントで、以下の更新が行われました。

  • textプロパティ内で<li>タグを使用して、テキストを箇条書きリストで表示できるようになりました。
  • 次のコンポーネントプロパティが動的になり、SetValueコマンドで変更できるようになりました。
    • letterSpacing
    • lineHeight
    • maxLines
    • textAlign
    • textAlignVertical

Textコンポーネントの詳細については、APL Textを参照してください。

Imageコンポーネントのsourceプロパティで、データURLタイプがサポートされるようになりました。詳細については、sourceを参照してください。

APLバージョンとAmazonデバイスのサポート

次の表は、Amazonデバイスで利用できるAPLの最新バージョンを示しています。

デバイス 最新のAPLバージョン 備考

Echo Show 21

2024.3

Echo Show 15

2024.3

Echo Show 10

2024.3

Echo Show 8

2024.3

Echo Show 5

2024.3

Echo Show

2024.2

Echo Spot1

2024.2

Echo Hub

2024.3

Fire TV

2024.2

リリース日は後日発表予定

Fireタブレット

2022.2

リリース日は後日発表予定

1初代Echo Spot(2017年リリース)では、APLがサポートされ、円形の小型デバイス用のViewportが使用されています。Echo Spot(2024年リリース)は、洗練されたデザインのUIを備えたスマートな目覚まし時計です。最適な機能と信頼性を実現するため、このデバイスではカスタムスキル用のAPLはサポートされていません。そのため、スキルに送信されるリクエストでは、supportedInterfacesプロパティにAlexa.Presentation.APLは含まれません。ただし、このデバイスでは音声のみのエクスペリエンスがサポートされています。ユーザーがスキルを操作すると、デバイスにスキルのアイコンと名前が表示されます。AudioPlayerインターフェースを使用するスキルでは、backgroundImageを除き、AudioPlayer.playディレクティブで指定した再生コントロールとカスタムオーディオメタデータも表示されます。AudioPlayerディレクティブの詳細については、AudioPlayerインターフェースのリファレンスを参照してください。

APLのバージョンを指定する

APLドキュメントで、version"2024.3"に設定します。

スキルはAPLの最新バージョンをサポートしていない古いデバイスでも呼び出される場合があります。特定のバージョンのAPLで導入された機能を使用する場合は、それ以前のバージョンのAPLを実行しているデバイス向けに代替機能を提供してください。データバインディングコンテキストenvironment.aplVersionプロパティを使用すると、デバイスのAPLのバージョンを取得できます。このプロパティは、APL 1.0ではnull、APL 1.1以降では実際のバージョン番号を返します。このプロパティをwhenステートメントで使用すると、バージョンに基づく条件付きブロックを作成できます。

たとえば、次のようにすると、APL 1.1以降を使用しているデバイスではVectorGraphicを、APL 1.0を使用しているデバイスでは画像(Image)をレンダリングできます。

[
  {
    "type": "Image",
    "when": "${environment.aplVersion == null}",
    "width": 100,
    "height": 100,
    "source": "https://example.com/alternate/image/for/older/versions.jpg"
  },
  {
    "type": "VectorGraphic",
    "when": "${environment.aplVersion != null}",
    "source": "lightbulb",
    "width": 100,
    "height": 100,
    "scale": "best-fit"
  }
]

APLのバージョンは、スキルに送信されるリクエストにも含まれています。

context.System.device.supportedInterfaces.['Alexa.Presentation.APL'].runtime.maxVersion

次の例は、APL 2024.3に対応したデバイスからのリクエストを示しています。説明を簡潔にするために、sessionrequestviewportの各プロパティは省略されています。

{
  "version": "1.0",
  "session": {},
  "context": {
    "System": {
      "application": {
        "applicationId": "amzn1.ask.skill.1"
      },
      "user": {
        "userId": "amzn1.ask.account.1"
      },
      "device": {
        "deviceId": "amzn1.ask.device.1",
        "supportedInterfaces": {
          "Alexa.Presentation.APL": {
            "runtime": {
              "maxVersion": "2024.3"
            }
          }
        }
      },
      "apiEndpoint": "https://api.amazonalexa.com",
      "apiAccessToken": "eyJ..."
    },
    "Viewport": {}
  },
  "request": {}
}


このページは役に立ちましたか?

最終更新日: 2025 年 11 月 11 日