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



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

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

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

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

APLの最新バージョンをサポートしていない古いデバイスで、スキルが呼び出される場合があります。「1.1」に固有の機能を使用するときは、以前のバージョンのAPLを実行しているデバイス向けに代替機能を提供してください。データバインディングコンテキストenvironment.aplVersionプロパティを使用すると、デバイスのAPLのバージョンを取得できます。このプロパティをwhenステートメントで使用して、バージョンに基づく条件付きブロックを作成します。次に例を示します:

{
  "type": "VectorGraphic",
  "when": "${environment.aplVersion == '1.1'}",
  "source": "iconWifi3",
  "width": 100,
  "height": 100,
  "scale": "best-fit"
},
{
  "type": "Text",
  "when": "${environment.aplVersion == null}",
  "source": "https://example.com/alternate/image/for/older/versions.jpg"
}

APLのバージョンは、スキルに送信されるリクエストでも使用できます。

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

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

ベクターグラフィックスのサポート

APLの新機能として、Scalable Vector Graphics規格のサブセットである、Alexa Vector Graphicsをサポートしています。以下の情報を参照してください。

アニメーションのサポート

APLでアニメーションがサポートされるようになりました。任意のAPLコンポーネントやレイアウトの位置、倍率、回転、透明度をアニメーション化できます。AnimateItemコマンドを参照してください

ユーザー定義のコマンド

APLドキュメントまたはパッケージでカスタムコマンドを定義して、名前を付けることができます。これらのコマンドにパラメーターを指定し、標準のAPLコマンドを呼び出すことができます。

APL向けAlexaデザインシステム

レイアウト、スタイル、viewportプロファイルのパッケージがAPL向けAlexaデザインシステムに用意されています。

新しいレスポンシブ対応コンポーネントとテンプレート

APL 1.1では、APL向けAlexaデザインシステム(旧名称「Alexaレイアウト」)の一部として、新しいレスポンシブ対応コンポーネントとテンプレートが導入されてました。この新機能をAPLドキュメントで使用すると、さまざまな画面サイズや形状に対応するために、自分で条件付きロジックを作成する必要がなくなります。

この新しいコンポーネントとテンプレートを使用するには、alexa-layoutsパッケージをドキュメントに読み込みます。versionには、必ず1.1.0を指定してください。

{
  "import": [
    {
      "name": "alexa-layouts",
      "version": "1.1.0"
    }
  ]
}

コンポーネントとテンプレートの概要については、レスポンシブ対応コンポーネントとテンプレートを参照してください。

レスポンシブ対応コンポーネントについて詳しくは、以下を参照してください。

レスポンシブ対応テンプレートについて詳しくは、以下を参照してください。

レスポンシブ対応のAPLドキュメントの作成について詳しくは、レスポンシブ対応のAPLドキュメントを作成するを参照してください。

Alexa Headerに関する変更点

APL 1.1では、AlexaHeaderに次の新しいプロパティが追加されました。

  • headerBackButtonAccessibilityLabel
  • headerBackButtonCommand
  • headerDivider
  • theme

headerNavigationActionパラメーターは、1.1.0バージョンのAlexaHeaderから削除されました。ユーザーが戻るボタンを押したときに実行するコマンドを指定するには、headerBackButtonCommandを使用します。

更新されたバージョンを使用するには、alexa-layoutsパッケージを読み込む際にversionに必ず1.1.0を指定してください。

APL 1.1では、AlexaFooterに次の新しいプロパティが導入されました。

  • theme

更新されたレイアウトを使用するには、alexa-layoutsパッケージを読み込む際にversion1.1.0を必ず指定してください。

APLに関するその他の最新情報

コマンド

新しいコマンド:

Sequentialコマンドの新しいプロパティ

  • catch
  • finally

ドキュメント

APLドキュメントの新しい最上位プロパティ:

  • commands
  • graphics
  • onMount
  • settings

コンポーネント

すべてのコンポーネントは、次の新しいプロパティをサポートするようになりました。

  • accessibilityLabel
  • checked
  • disabled
  • display
  • onMount
  • transform

また、コンポーネントの新機能として、karaokeTarget状態をサポートするようになりました。これにより、読み上げられているテキストの色を制御できます。Stylesを参照してください。

Pager

  • 指定されない場合、Pagerコンポーネントのheightwidthのデフォルトは100dpです。Pagerのheightwidthは、絶対ディメンションまたは相対ディメンションのいずれかである必要があります。autoは使用できません。Pagerの子のheightwidthは「100%」に固定されています。
  • navigationプロパティのデフォルトはwrapです。

Video

データバインディングコンテキスト

データバインディングコンテキストで、次の新しいenvironmentプロパティを使用できるようになりました。

  • allowOpenURL
  • animation
  • aplVersion
  • disallowVideo

viewportオブジェクトmodeプロパティが追加されました。

トランスフォーマー

  • ssmlToSpeechトランスフォーマーは現在、入力値として有効なSSMLテキストのみを受け入れます。SSMLは<speak>タグでラップする必要があります。
  • 新しいtextToSpeechトランスフォーマーは、プレーンテキストを音声に変換します。

いずれのトランスフォーマーも、同じように機能します。トランスフォーマーの出力値をコンポーネントのspeechプロパティにバインドします。トランスフォーマーを参照してください。