question

creativival avatar image
creativival asked ·

(APL) Check Box と Button を使って、選択問題スキルを作成する方法

4つの Check Box と、一つの Button (解答する)を使って、選択問題スキルは作成できるでしょうか? タッチを連続した場合、チェック状態が反映されないバグに悩まされています。


現在の実装としては、

(1) チェクボックスをタッチ -> Check Box の id を、SendEvent で送る -> sessionAttributes に保存

(2) ボタンをタッチ -> SendEvent で通知 -> sessionAttributes に保存したデータを読み込んで処理を実行

上記実装で動作したのですが、(1), (2) のタッチを連続して行った時に、sessionAttributes に保存ができず、バグが発生します。

対処法として、ボタンタッチを delay: 3000 にして、時間差をつけて、うまく動作したのですが、今度はチェックボックスの複数選択で、連続タッチした時に同様のバグが発生しました。


対処方法が思いつかず、質問させていただきました。そもそも、APL では難しい。Alexa presentation HTML で実装すべき案件でしょうか? ご助言いただければ幸いです。


alexa skills kitalexa presentation language
10 |2000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

creativival avatar image
creativival answered ·

自己解答です。APL で可能でした。

    {
      "id": "answerButton",
      "type": "AlexaButton",
      "buttonText": "解答する",
      "primaryAction": [
        {
          "type": "SendEvent",
          "delay":1000, // CeckBox との連続押しへの対応(不要かも)
          "components": [
            "answer1", // CheckBox の id
            "answer2", // CheckBox の id
            "answer3", // CheckBox の id
            "answer4", // CheckBox の id
            "answer5" // CheckBox の id
          ],
          "arguments": [
            "Answer"
          ]
        }
      ]
    }


処理側は、以下のコードでチェック状態が取得できます。

const components = handlerInput.requestEnvelope.request.components;


10 |2000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.