คุณใช้ Callback ต่อไปนี้ได้ใน Interactive Canvas Action
onUpdate()
onUpdate()
ข้อมูล Callback Pass จากเว็บฮุคไปยังเว็บแอปเพื่ออัปเดต
เว็บแอปให้เหมาะสม คุณควรใช้ Callback นี้กับฝั่งเซิร์ฟเวอร์เท่านั้น
โมเดลการดำเนินการตามคำสั่งซื้อของการพัฒนา Interactive Canvas
ดูข้อมูลเพิ่มเติมเกี่ยวกับ onUpdate()
ได้ที่
ส่งข้อมูลเพื่ออัปเดตเว็บแอป
onTtsMark()
ระบบจะเรียก Callback onTtsMark()
เมื่อมีแท็ก <mark>
ที่กำหนดเองรวมอยู่ในแท็ก
ภาษามาร์กอัปการสังเคราะห์เสียง (SSML)
ของการตอบกลับจะอ่านออกเสียงให้ผู้ใช้ทราบในระหว่างการอ่านออกเสียงข้อความ (TTS) คุณสามารถ
ใช้ onTtsMark()
ในการพัฒนาการดำเนินการตามคำสั่งซื้อทั้งฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์
ในข้อมูลโค้ดต่อไปนี้ onTtsMark()
จะซิงค์ข้อมูลภาพเคลื่อนไหวของเว็บแอป
ด้วยเอาต์พุต TTS ที่เกี่ยวข้อง เมื่อการดำเนินการพูดกับผู้ใช้ว่า "ขออภัย
คุณแพ้" เว็บแอปสะกดคำที่ถูกต้องและแสดงตัวอักษรที่
ผู้ใช้รายนั้น
ในตัวอย่างต่อไปนี้ ตัวแฮนเดิลเว็บฮุค revealWord
มี
ทำเครื่องหมายในการตอบกลับผู้ใช้ในกรณีที่ชนะเกม:
JavaScript
… app.handle('revealWord', conv => { conv.add(new Simple(`<speak>Sorry, you lost.<mark name="REVEAL_WORD"/> The word is ${conv.session.params.word}.</speak>`)); conv.add(new Canvas()); }); …
จากนั้นข้อมูลโค้ดต่อไปนี้จะบันทึกการติดต่อกลับของ onTtsMark()
โปรดตรวจสอบ
ของเครื่องหมาย และใช้ฟังก์ชัน revealCorrectWord()
ซึ่งจะอัปเดต
เว็บแอป:
JavaScript
… setCallbacks() { // declare Assistant Canvas Action callbacks const callbacks = { onTtsMark(markName) { if (markName === 'REVEAL_WORD') { // display the correct word to the user that.revealCorrectWord(); } }, } callbacks.onUpdate.bind(this); } …
onInputStatusChanged()
Callback onInputStatusChanged()
จะแจ้งให้ทราบเมื่อสถานะอินพุตมีการเปลี่ยนแปลง
ในการทำงานของ Interactive Canvas การเปลี่ยนแปลงสถานะอินพุตจะแสดงเมื่อ
ไมโครโฟนจะเปิดและปิด หรือเมื่อ Assistant กำลังประมวลผลคำถาม
เหตุการณ์ต่อไปนี้อาจทำให้สถานะอินพุตเปลี่ยนแปลงได้
- ผู้ใช้พูดกับการดำเนินการของคุณ
- ผู้ใช้ป้อนข้อความในแอป Google Search ของ Android (AGSA)
- เว็บแอปที่ใช้
sendTextQuery()
API เพื่อส่งคำค้นหาไปยังการดำเนินการ - การดำเนินการเขียนไปยังพื้นที่เก็บข้อมูลในบ้านและเหตุการณ์อื่นๆ ของ Assistant
กรณีการใช้งานหลักสำหรับ Callback นี้คือซิงค์ข้อมูลการดำเนินการของคุณกับ การโต้ตอบด้วยเสียงของผู้ใช้ เช่น หากผู้ใช้กำลังเล่นโฆษณาอินเทอร์แอกทีฟ เกม Canvas และเปิดไมโครโฟน คุณสามารถหยุดเกมชั่วคราวในขณะที่ผู้ใช้ พูด นอกจากนี้ คุณยังรอจนกว่าไมโครโฟนจะเปิดเพื่อส่งข้อความค้นหาไปยัง Assistant ตรวจดูว่าได้รับข้อความแล้ว
API นี้จะรายงานสถานะต่อไปนี้
LISTENING
- บ่งบอกว่าไมโครโฟนเปิดอยู่IDLE
- บ่งบอกว่าไมโครโฟนปิดอยู่PROCESSING
- บ่งบอกว่า Assistant กำลังดำเนินการค้นหาอยู่ และ ไมโครโฟนปิดอยู่
API จะรายงานสถานะอินพุตไปยังการดำเนินการของคุณทุกครั้งที่สถานะมีการเปลี่ยนแปลง
แม้ว่าการเปลี่ยนระหว่างรัฐต่างๆ จะเป็นไปได้ แต่กระบวนการต่อไปนี้เป็นเรื่องปกติ
IDLE
>LISTENING
>PROCESSING
>IDLE
- ผู้ใช้พูดข้อความค้นหา ประมวลผลการค้นหา และไมโครโฟนจะปิดIDLE
>PROCESSING
>IDLE
- เว็บแอปใช้sendTextQuery()
API เพื่อส่งข้อความค้นหาไปที่การดำเนินการIDLE
>LISTENING
>IDLE
- ผู้ใช้เปิดไมโครโฟนแต่ไม่ พูดข้อความค้นหา
หากต้องการใช้ฟีเจอร์นี้ในการดำเนินการ ให้เพิ่ม onInputStatusChanged()
ลงในเว็บแอป
ดังที่แสดงในข้อมูลโค้ดต่อไปนี้
onInputStatusChanged(inputStatus) {
console.log("The new input status is: ", inputStatus);
}
Callback onInputStatusChanged()
จะส่งพารามิเตอร์ enum เดียวกลับมา
inputStatus
คุณสามารถตรวจสอบค่านี้เพื่อดูสถานะอินพุตปัจจุบันได้
inputStatus
จะเป็น LISTENING
, PROCESSING
หรือ IDLE
ก็ได้
ถัดไป ให้เพิ่ม onInputStatusChanged()
ลงในออบเจ็กต์ callbacks
เพื่อลงทะเบียนเป็น
ที่แสดงในตัวอย่างต่อไปนี้
/**
* Register all callbacks used by the Interactive Canvas Action
* executed during game creation time.
*/
setCallbacks() {
const that = this;
// Declare the Interactive Canvas action callbacks.
const callbacks = {
onUpdate(data) {
console.log('Received data', data);
},
onInputStatusChanged(inputStatus) {
console.log("The new input status is: ", inputStatus);
},
};
// Called by the Interactive Canvas web app once web app has loaded to
// register callbacks.
this.canvas.ready(callbacks);
}
}