說明
使用 chrome.devtools.recorder
API 自訂開發人員工具中的「錄音工具」面板。
devtools.recorder
API 是預先發布版功能,可讓您在 Chrome 開發人員工具中擴充錄音工具面板。
如需開發人員工具 API 的一般使用簡介,請參閱 DevTools API 摘要。
適用國家/地區
概念和用法
自訂匯出功能
如要註冊擴充功能外掛程式,請使用 registerRecorderExtensionPlugin
函式。這個函式需要外掛程式執行個體、name
和 mediaType
做為參數。外掛程式執行個體必須實作兩種方法:stringify
和 stringifyStep
。
擴充功能提供的 name
會顯示在「Recorder」面板中的「Export」選單中。
視匯出情境而定,當使用者點選擴充功能提供的匯出選項時,「Recorder」面板會叫用下列其中一個函式:
mediaType
參數可讓擴充功能指定透過 stringify
和 stringifyStep
函式產生的輸出類型。例如,如果結果是 JavaScript 程式,���輸入 application/javascript
。
自訂重播按鈕
如要在錄音工具中自訂重播按鈕,請使用 registerRecorderExtensionPlugin
函式。外掛程式必須實作 replay
方法,自訂設定才會生效。如果偵測到此方法,錄音工具中會顯示重播按鈕。點選按鈕後,系統會將目前的記錄物件做為第一個引數傳遞給 replay
方法。
這時擴充功能可以顯示用於處理重播的 RecorderView
,或是使用其他擴充功能 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'
);
重播外掛程式
以下程式碼會實作擴充功能外掛程式,以便建立虛擬錄音工具檢視畫面並在重播要求時顯示:
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
「錄音工具」面板叫用的外掛程式介面,用於自訂「錄音工具」面板。
屬性
-
重播
void
Chrome 112 以上版本允許擴充功能實作自訂重播功能。
replay
函式如下所示:(recording: object) => {...}
-
錄製中
物件
使用者與網頁互動的記錄。這應與 Puppeteer 的錄製結構定義相符。
-
-
Stringify
void
將錄音工具面板格式的錄製內容轉換成字串。
stringify
函式如下所示:(recording: object) => {...}
-
錄製中
物件
使用者與網頁互動的記錄。這應與 Puppeteer 的錄製結構定義相符。
-
-
stringifyStep
void
將錄音工具面板格式的錄製內容步驟轉換成字串。
stringifyStep
函式如下所示:(step: object) => {...}
-
點選 [下一步]
物件
記錄使用者與網頁互動的步驟。這應該與 Puppeteer 的步驟結構定義相符。
-
RecorderView
代表由擴充功能建立的檢視畫面,可嵌入錄音工具面板中。
屬性
-
onHidden
事件<functionvoidvoid>
隱藏檢視畫面時觸發。
onHidden.addListener
函式如下所示:(callback: function) => {...}
-
回呼
功能
callback
參數如下所示:() => void
-
-
onShown
事件<functionvoidvoid>
檢視區塊顯示時觸發。
onShown.addListener
函式如下所示:(callback: function) => {...}
-
回呼
功能
callback
參數如下所示:() => void
-
-
顯示
void
表示擴充功能想在錄音工具面板中顯示這個檢視畫面。
show
函式如下所示:() => {...}
方法
createView()
chrome.devtools.recorder.createView(
title: string,
pagePath: string,
)
建立可處理重播的檢視畫面。這個檢視畫面會嵌入錄音工具面板中。
參數
-
title
字串
顯示在開發人員工具工具列中擴充功能圖示旁的標題。
-
pagePath
字串
面板 HTML 網頁相對於擴充功能目錄的路徑。
傳回
registerRecorderExtensionPlugin()
chrome.devtools.recorder.registerRecorderExtensionPlugin(
plugin: RecorderExtensionPlugin,
name: string,
mediaType: string,
)
註冊錄音工具擴充功能外掛程式。
參數
-
plugin
實作 RecorderExtensionPlugin 介面的執行個體。
-
名稱
字串
外掛程式的名稱。
-
mediaType
字串
外掛程式產生的字串內容媒體類型。