คำอธิบาย
ใช้ chrome.devtools.recorder API เพื่อปรับแต่งแผงเครื่องบันทึกในเครื่องมือสำหรับนักพัฒนาเว็บ
devtools.recorder API เป็นฟีเจอร์เวอร์ชันตัวอย่างที่ช่วยให้คุณขยายแผงเครื่องบันทึกในเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome ได้
ดูสรุป API ของเครื่องมือสำหรับนักพัฒนาเว็บสำหรับข้อมูลเบื้องต้นทั่วไปเกี่ยวกับการใช้ API ของเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์
ความพร้อมใช้งาน
แนวคิดและการใช้งาน
การปรับแต่งฟีเจอร์การส่งออก
หากต้องการลงทะเบียนปลั๊กอินส่วนขยาย ให้ใช้ฟังก์ชัน registerRecorderExtensionPlugin ฟังก์ชันนี้ต้องมีอินสแตนซ์ปลั๊กอิน name และ mediaType เป็นพารามิเตอร์ อินสแตนซ์ของปลั๊กอินต้องใช้ 2 วิธี ได้แก่ stringify และ stringifyStep
name ที่ส่วนขยายระบุจะปรากฏในเมนูส่งออกในแผงเครื่องบันทึก
เมื่อผู้ใช้คลิกตัวเลือกการส่งออกที่ส่วนขยายมีให้ แผงเครื่องบันทึกจะเรียกใช้ฟังก์ชันใดฟังก์ชันหนึ่งต่อไปนี้ ทั้งนี้ขึ้นอยู่กับบริบทการส่งออก
stringifyที่ได้รับการบันทึกโฟลว์ผู้ใช้ทั้งหมดstringifyStepที่ได้รับขั้นตอนที่บันทึกไว้รายการเดียว
พารามิเตอร์ mediaType ช่วยให้ส่วนขยายระบุประเภทเอาต์พุตที่สร้างด้วยฟังก์ชัน stringify และ stringifyStep ได้ เช่น application/javascript หากผลลัพธ์เป็นโปรแกรม JavaScript
การปรับแต่งปุ่มเล่นซ้ำ
หากต้องการปรับแต่งปุ่มเล่นซ้ำในเครื่องบันทึก ให้ใช้ฟังก์ชัน registerRecorderExtensionPlugin ปลั๊กอินต้องใช้วิธี replay เพื่อให้การปรับแต่งมีผล
หากตรวจพบวิธีดังกล่าว ปุ่มเล่นซ้ำจะปรากฏในเครื่องบันทึก
เมื่อคลิกปุ่ม ระบบจะส่งออบเจ็กต์การบันทึกปัจจุบันเป็นอาร์กิวเมนต์แรกไปยังเมธอด replay
ในขั้นตอนนี้ ส่วนขยายจะแสดง RecorderView สำหรับจัดการการเล่นซ้ำ หรือใช้ Extension API อื่นๆ เพื่อประมวลผลคำขอเล่นซ้ำ หากต้องการสร้าง RecorderView ใหม่ ให้เรียกใช้ chrome.devtools.recorder.createView
ตัวอย่าง
ปลั๊กอินการส่งออก
โค้ดต่อไปนี้จะติดตั้งใช้งานปลั๊กอินส่วนขยายที่แปลงการบันทึกเป็นสตริงโดยใช้ JSON.stringify
class MyPlugin {
stringify(recording) {
return Promise.resolve(JSON.stringify(recording));
}
stringifyStep(step) {
return Promise.resolve(JSON.stringify(step));
}
}
chrome.devtools.recorder.registerRecorderExtensionPlugin(
new MyPlugin(),
/*name=*/'MyPlugin',
/*mediaType=*/'application/json'
);
ปลั๊กอิน Replay
โค้ดต่อไปนี้จะใช้ปลั๊กอินส่วนขยายที่สร้างมุมมองโปรแกรมอัดเสียงจำลองและแสดงเมื่อมีการขอเล่นซ้ำ
const view = await chrome.devtools.recorder.createView(
/* name= */ 'ExtensionName',
/* pagePath= */ 'Replay.html'
);
let latestRecording;
view.onShown.addListener(() => {
// Recorder has shown the view. Send additional data to the view if needed.
chrome.runtime.sendMessage(JSON.stringify(latestRecording));
});
view.onHidden.addListener(() => {
// Recorder has hidden the view.
});
export class RecorderPlugin {
replay(recording) {
// Share the data with the view.
latestRecording = recording;
// Request to show the view.
view.show();
}
}
chrome.devtools.recorder.registerRecorderExtensionPlugin(
new RecorderPlugin(),
/* name=*/ 'CoffeeTest'
);
ดูตัวอย่างส่วนขยายที่สมบูรณ์ได้ใน GitHub
ประเภท
RecorderExtensionPlugin
อินเทอร์เฟซปลั๊กอินที่แผงเครื่องบันทึกเรียกใช้เพื่อปรับแต่งแผงเครื่องบันทึก
พร็อพเพอร์ตี้
-
เล่นซ้ำ
เป็นโมฆะ
Chrome 112 ขึ้นไปอนุญาตให้ส่วนขยายใช้ฟังก์ชันการเล่นซ้ำที่กำหนดเอง
ฟังก์ชัน
replayมีลักษณะดังนี้(recording: object) => {...}
-
กำลังบันทึก
ออบเจ็กต์
การบันทึกการโต้ตอบของผู้ใช้กับหน้าเว็บ ซึ่งควรตรงกับสคีมาการบันทึกของ Puppeteer
-
-
stringify
เป็นโมฆะ
แปลงการบันทึกจากรูปแบบแผงเครื่องบันทึกเป็นสตริง
ฟังก์ชัน
stringifyมีลักษณะดังนี้(recording: object) => {...}
-
กำลังบันทึก
ออบเจ็กต์
การบันทึกการโต้ตอบของผู้ใช้กับหน้าเว็บ ซึ่งควรตรงกับสคีมาการบันทึกของ Puppeteer
-
-
stringifyStep
เป็นโมฆะ
แปลงขั้นตอนของการบันทึกจากรูปแบบแผงเครื่องบันทึกเป็นสตริง
ฟังก์ชัน
stringifyStepมีลักษณะดังนี้(step: object) => {...}
-
ขั้นตอน
ออบเจ็กต์
ขั้นตอนของการบันทึกการโต้ตอบของผู้ใช้กับหน้าเว็บ ซึ่งควรตรงกับสคีมาขั้นตอนของ Puppeteer
-
RecorderView
แสดงมุมมองที่สร้างโดยส่วนขยายเพื่อฝังไว้ในแผงเครื่องบันทึก
พร็อพเพอร์ตี้
-
onHidden
Event<functionvoidvoid>
เริ่มทำงานเมื่อมีการซ่อนมุมมอง
ฟังก์ชัน
onHidden.addListenerมีลักษณะดังนี้(callback: function) => {...}
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้() => void
-
-
onShown
Event<functionvoidvoid>
เริ่มทำงานเมื่อมีการแสดงมุมมอง
ฟังก์ชัน
onShown.addListenerมีลักษณะดังนี้(callback: function) => {...}
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackมีลักษณะดังนี้() => void
-
-
แสดง
เป็นโมฆะ
ระบุว่าส่วนขยายต้องการแสดงมุมมองนี้ในแผงเครื่องบันทึก
ฟังก์ชัน
showมีลักษณะดังนี้() => {...}
เมธอด
createView()
chrome.devtools.recorder.createView(
title: string,
pagePath: string,
): RecorderView
สร้างมุมมองที่สามารถจัดการการเล่นซ้ำได้ โดยมุมมองนี้จะฝังอยู่ในแผงเครื่องบันทึก
พารามิเตอร์
-
title
สตริง
ชื่อที่แสดงข้างไอคอนส่วนขยายในแถบเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์
-
pagePath
สตริง
เส้นทางของหน้า HTML ของแผงที่สัมพันธ์กับไดเรกทอรีส่วนขยาย
การคืนสินค้า
registerRecorderExtensionPlugin()
chrome.devtools.recorder.registerRecorderExtensionPlugin(
plugin: RecorderExtensionPlugin,
name: string,
mediaType: string,
): void
ลงทะเบียนปลั๊กอินส่วนขยายของโปรแกรมบันทึก
พารามิเตอร์
-
ปลั๊กอิน
อินสแตนซ์ที่ใช้การติดตั้งอินเทอร์เฟซ RecorderExtensionPlugin
-
ชื่อ
สตริง
ชื่อปลั๊กอิน
-
mediaType
สตริง
ประเภทสื่อของเนื้อหาสตริงที่ปลั๊กอินสร้างขึ้น