APLバージョン1.2で導入された変更点



APLバージョン1.2で導入された変更点

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

更新情報

すべてのコンポーネントに、影の効果を表示するための新しいプロパティが追加されました。

すべてのコンポーネントに、カーソルハンドラー用の新しいプロパティが追加されました。

フィルターNoiseが追加され、画像にノイズを追加できるようになりました。これは、Imageコンポーネントで使用できます。

APLでキーボードおよびキーボードイベントがサポートされました。コンポーネントレベルとドキュメントレベルの両方で、KeyUpイベントとKeyDownイベントのハンドラーを定義できます。キーボードを参照してください。

タッチ、カーソル、キーボードのイベントに応答できるコンポーネントに、onFocushandleKeyDownなどのアクション可能なコンポーネントのプロパティが追加されました。アクション可能なコンポーネントには、次のものがあります。

  • Pager
  • ScrollView
  • Sequence
  • TouchWrapper

これらのコンポーネントで使用できる新しいプロパティについては、アクション可能なコンポーネントのプロパティを参照してください。

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

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

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 1.2に対応したデバイスからのリクエストを示しています。短くするために、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": "1.2"
            }
          }
        }
      },
      "apiEndpoint": "https://api.amazonalexa.com",
      "apiAccessToken": "eyJ..."
    },
    "Viewport": {}
  },
  "request": {}
}

以前のバージョンのAPL