alexa - Alexa APL Pager OnPageChanged 事件仅通过触摸触发
问题描述
我创建了一个小示例项目来结合 OnPageChanged 事件测试 AutoPage 命令。但是,似乎只有当我自己触摸屏幕并更改页面时才会触发该事件。该事件不是由自动分页触发的。我在官方文档中找不到任何相关信息:https ://developer.amazon.com/de/docs/alexa-presentation-language/apl-pager.html#pager_on_page_changed_property 这是我的文档:
{
"type": "APL",
"version": "1.1",
"settings": {},
"theme": "dark",
"import": [],
"resources": [],
"styles": {},
"onMount": [],
"graphics": {},
"commands": {},
"layouts": {},
"mainTemplate": {
"parameters": [
"payload"
],
"items": [
{
"type": "Pager",
"id": "pagerComponentId",
"onPageChanged": [
{
"type": "SendEvent"
}
],
"navigation": "wrap",
"height": "100%",
"width": "100%",
"item": [
{
"type": "Container",
"height": "200dp",
"width": "300dp",
"paddingTop": "16dp",
"paddingLeft": "16dp",
"paddingRight": "16dp",
"paddingBottom": "16dp",
"items": [
{
"type": "Image",
"height": "200dp",
"width": "300dp",
"source": "https://d2o906d8ln7ui1.cloudfront.net/placeholder_image.png"
}
]
},
{
"type": "Container",
"items": [
{
"type": "Image",
"height": "200dp",
"width": "300dp",
"source": "https://d2o906d8ln7ui1.cloudfront.net/placeholder_image.png"
}
]
},
{
"type": "Container",
"items": [
{
"type": "Image",
"height": "200dp",
"width": "300dp",
"source": "https://d2o906d8ln7ui1.cloudfront.net/placeholder_image.png"
}
]
}
]
}
]
}
}
这就是我在代码中启动它的方式
return handlerInput.responseBuilder
//.speak(speechText)
.addDirective({
type: 'Alexa.Presentation.APL.RenderDocument',
token: 'pagerToken',
version: '1.0',
document: require('./aplu/main2.json'),
datasources: {
data: {
},
}
})
.addDirective({
type: 'Alexa.Presentation.APL.ExecuteCommands',
token: 'pagerToken',
commands: [
{
'type': 'AutoPage',
'componentId': 'pagerComponentId',
'delay': 3000,
'duration': 2000,
}
]
})
.getResponse();
这是我的事件处理程序:
const test = {
canHandle(handlerInput){
return (handlerInput.requestEnvelope.request.type === 'Alexa.Presentation.APL.UserEvent') },
handle(handlerInput) {
return handlerInput.responseBuilder
.speak("Test")
.getResponse();
}
};
正如我所说,只有当我自己触摸屏幕时,语音输出测试才有效。自动分页本身可以工作。它打算以这种方式工作吗?还是我做错了什么?
解决方案
推荐阅读
- java - 我应该如何使用 jdbc 从 plsql 将 varray 发送到 java?
- c - 如何从文本文件中将数据作为字符读取,然后将每个字符除以一个 int
- json - 终端进程以退出代码终止:1
- r - 如何计算r中具有相似列名的列的rowMeans?
- applescript-objc - 如何使用 Applescript 打开具有特定扩展名的文件
- asp.net-core - slugified url 上的模糊路线匹配
- c - OpenMP:While 循环内的 2 个嵌套 For 循环。如何修复多线程功能?(雅可比求解器)
- oracle - 想要将行转换为列
- python - 多个索引与python中的for循环匹配
- r - 数据框的总和列